Method and apparatus for processing video signal

ABSTRACT

A method for decoding an image according to the present invention comprises the steps of: deriving an intra prediction mode of a current block; and changing the intra prediction mode to a wide angle intra prediction mode when the intra prediction mode is less than or equal to a threshold value and the current block is a non-square having a width greater than a height.

TECHNICAL FIELD

The present invention relates to a method and an apparatus forprocessing video signal.

BACKGROUND ART

Recently, demands for high-resolution and high-quality images such ashigh definition (HD) images and ultra-high definition (UHD) images haveincreased in various application fields. However, higher resolution andquality image data has increasing amounts of data in comparison withconventional image data. Therefore, when transmitting image data byusing a medium such as conventional wired and wireless broadbandnetworks, or when storing image data by using a conventional storagemedium, costs of transmitting and storing increase. In order to solvethese problems occurring with an increase in resolution and quality ofimage data, high-efficiency image encoding/decoding techniques may beutilized.

Image compression technology includes various techniques, including: aninter-prediction technique of predicting a pixel value included in acurrent picture from a previous or subsequent picture of the currentpicture; an intra-prediction technique of predicting a pixel valueincluded in a current picture by using pixel information in the currentpicture; an entropy encoding technique of assigning a short code to avalue with a high appearance frequency and assigning a long code to avalue with a low appearance frequency; etc. Image data may beeffectively compressed by using such image compression technology, andmay be transmitted or stored.

In the meantime, with demands for high-resolution images, demands forstereographic image content, which is a new image service, have alsoincreased. A video compression technique for effectively providingstereographic image content with high resolution and ultra-highresolution is being discussed.

DISCLOSURE Technical Problem

The present invention is to provide a method and apparatus foreffectively performing intra prediction on an encoding/decoding targetblock when encoding/decoding a video signal.

The present invention is to provide a method and apparatus forperforming intra prediction using a wide angle intra prediction modewhen encoding/decoding a video signal.

The present invention is to provide a method and an apparatus forperforming intra prediction using right and bottom reference sampleswhen encoding/decoding a video signal.

The present invention is to provide a method and apparatus forperforming intra prediction considering both forward direction andinverse direction of an intra prediction mode when encoding/decoding avideo signal.

Technical problems obtainable from the present invention are non-limitedthe above-mentioned technical task, and other unmentioned technicaltasks can be clearly understood from the following description by thosehaving ordinary skill in the technical field to which the presentinvention pertains.

Technical Solution

A video signal decoding method and apparatus according to the presentinvention may derive an intra prediction mode of a current block, andmodify the intra prediction mode to a wide angle intra prediction mode,when the intra prediction mode is less than or equal to a thresholdvalue, and the current block is a non-square type having a width greaterthan a height. In this case, the wide angle intra prediction mode has anangle greater than 135 degrees.

A video signal encoding method and apparatus according to the presentinvention may derive an intra prediction mode of a current block, andmodify the intra prediction mode to a wide angle intra prediction mode,when the intra prediction mode is less than or equal to a thresholdvalue, and the current block is a non-square type having a width greaterthan a height. In this case, the wide angle intra prediction mode has anangle greater than 135 degrees.

For a video signal encoding/decoding method and apparatus according tothe present invention, the threshold value may be determined based on aratio of the width and the height of the current block.

For a video signal encoding/decoding method and apparatus according tothe present invention, the wide angle intra prediction mode may bederived by adding a predefined value to the intra prediction mode, andthe predefined value may be the number of directional intra predictionmodes.

For a video signal encoding/decoding method and apparatus according tothe present invention, the number of wide angle intra prediction modesavailable for the current block may be determined based on a ratio ofthe width and the height of the current block.

For a video signal encoding/decoding method and apparatus according tothe present invention, when a multiple intra prediction method isapplied to the current block, a non-wide angle intra prediction mode maybe applied to a first sub-block of the current block, and the wide angleintra prediction mode may be applied to a second sub-block.

For a video signal encoding/decoding method and apparatus according tothe present invention, a sample located at a boundary of the firstsub-block may be modified to a value calculated by a smoothing filter.

For a video signal encoding/decoding method and apparatus according tothe present invention, filtering based on the smoothing filter may beperformed based on a first neighboring sample of the sample located atthe boundary of the first sub-block and a sample included in the firstsub-block, and a second neighboring sample of a sample included in thesecond sub-block.

It is to be understood that the foregoing summarized features areexemplary aspects of the following detailed description of the presentinvention without limiting the scope of the present invention.

Advantageous Effects

According to the present invention, an efficient intra prediction may beperformed for an encoding/decoding target block.

According to the present invention, there is an advantage that theefficiency of intra prediction can be improved by using the wide angleintra prediction mode.

According to the present invention, there is an advantage that theefficiency of intra prediction can be improved by using the right andbottom reference samples.

According to the present invention, by considering both the forwarddirection and the inverse direction of the intra prediction mode, thereis an advantage in that the efficiency of intra prediction can beincreased.

Effects obtainable from the present invention may be non-limited by theabove-mentioned effect, and other unmentioned effects can be clearlyunderstood from the following description by those having ordinary skillin the technical field to which the present invention pertains.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram illustrating a device for encoding a videoaccording to an embodiment of the present invention.

FIG. 2 is a block diagram illustrating a device for decoding a videoaccording to an embodiment of the present invention.

FIG. 3 is a diagram illustrating a partition mode candidate which may beapplied to a coding block when a coding block is encoded by interprediction.

FIG. 4 shows an example of hierarchically partitioning a coding blockbased on a tree structure as an embodiment to which the presentinvention is applied.

FIG. 5 is a diagram showing a partition shape in which a binarytree-based partitioning is allowed as an embodiment to which the presentinvention is applied.

FIG. 6 shows a triple tree partitioning shape.

FIG. 7 is a diagram showing an example in which only a specific shape ofbinary tree-based partitioning is allowed.

FIG. 8 is a diagram for describing an example in which informationrelated to the number of times allowed for a binary tree partitioning isencoded/decoded according to an embodiment to which the presentinvention is applied.

FIG. 9 is a diagram illustrating types of predefined intra predictionmodes for a device for encoding/decoding an image according to anembodiment of the present invention.

FIG. 10 is a diagram illustrating available intra prediction modes underan extended intra mode.

FIG. 11 is a diagram illustrating intra prediction modes including wideangle intra prediction modes.

FIG. 12 is a diagram illustrating an application aspect of a wide angleintra prediction mode according to a shape of a current block.

FIG. 13 is a flowchart briefly illustrating an intra prediction methodaccording to an embodiment of the present invention.

FIG. 14 is a diagram illustrating reference sample line candidates.

FIG. 15 is a diagram illustrating a method of modifying a predictionsample of a current block based on differential information ofneighboring samples according to an embodiment of the present invention.

FIGS. 16 and 17 are a diagram illustrating a one-dimensional referencesample group in which reference samples are rearranged in a line.

FIG. 18 is a diagram illustrating an example of deriving a rightreference sample or a bottom reference sample using a plurality ofreference samples.

FIGS. 19 and 20 are diagrams for explaining determining a rightreference sample and a bottom reference sample for a non-square blockaccording to an embodiment of the present invention.

FIG. 21 is a diagram for explaining an example of deriving a secondreference sample using a first reference sample.

FIG. 22 is a diagram illustrating an example of deriving a rightreference sample and a bottom reference sample by using a temporaryprediction sample obtained based on a planner mode.

FIG. 23 is a diagram illustrating reference samples configuring aone-dimensional reference sample group.

FIGS. 24 and 25 are diagrams illustrating positions of a first referencetarget sample and a second reference target sample.

FIG. 26 is a diagram illustrating an example of obtaining a predictionsample based on a weighted sum operation of the first reference targetsample and the second reference target sample.

FIG. 27 is a diagram illustrating a region to which bi-directional intraprediction is applied.

FIG. 28 is a diagram identifying and indicating a directional predictionmode in which bi-directional intra prediction is allowed.

FIG. 29 is a flowchart illustrating a process of determining whether toapply a bi-directional intra prediction mode according to the presentinvention.

FIG. 30 illustrates an embodiment to which a multiple intra predictionmethod is applied.

FIG. 31 is a diagram illustrating an example in which a smoothing filteris applied.

MODE FOR INVENTION

A variety of modifications may be made to the present invention andthere are various embodiments of the present invention, examples ofwhich will now be provided with reference to drawings and described indetail. However, the present invention is not limited thereto, and theexemplary embodiments can be construed as including all modifications,equivalents, or substitutes in a technical concept and a technical scopeof the present invention. The similar reference numerals refer to thesimilar element in described the drawings.

Terms used in the specification, ‘first’, ‘second’, etc. can be used todescribe various components, but the components are not to be construedas being limited to the terms. The terms are only used to differentiateone component from other components. For example, the ‘first’ componentmay be named the ‘second’ component without departing from the scope ofthe present invention, and the ‘second’ component may also be similarlynamed the ‘first’ component. The term ‘and/or’ includes a combination ofa plurality of items or any one of a plurality of terms.

In the present disclosure, when an element is referred to as being“connected” or “coupled” to another element, it is understood to includenot only that the element is directly connected or coupled to thatanother element but also that there may be another element therebetween.When an element is referred to as being “directly connected” or“directly coupled” to another element, it is understood that there is noother element therebetween.

The terms used in the present specification are merely used to describeparticular embodiments, and are not intended to limit the presentinvention. An expression used in the singular encompasses the expressionof the plural, unless it has a clearly different meaning in the context.In the present specification, it is to be understood that terms such as“including”, “having”, etc. are intended to indicate the existence ofthe features, numbers, steps, actions, elements, parts, or combinationsthereof disclosed in the specification, and are not intended to precludethe possibility that one or more other features, numbers, steps,actions, elements, parts, or combinations thereof may exist or may beadded.

Hereinafter, preferred embodiments of the present invention will bedescribed in detail with reference to the accompanying drawings.Hereinafter, the same constituent elements in the drawings are denotedby the same reference numerals, and a repeated description of the sameelements will be omitted.

FIG. 1 is a block diagram illustrating a device for encoding a videoaccording to an embodiment of the present invention.

Referring to FIG. 1 , the device 100 for encoding a video may include: apicture partitioning module 110, prediction modules 120 and 125, atransform module 130, a quantization module 135, a rearrangement module160, an entropy encoding module 165, an inverse quantization module 140,an inverse transform module 145, a filter module 150, and a memory 155.

The constitutional parts shown in FIG. 1 are independently shown so asto represent characteristic functions different from each other in thedevice for encoding a video. Thus, it does not mean that eachconstitutional part is constituted in a constitutional unit of separatedhardware or software. In other words, each constitutional part includeseach of enumerated constitutional parts for convenience. Thus, at leasttwo constitutional parts of each constitutional part may be combined toform one constitutional part or one constitutional part may be dividedinto a plurality of constitutional parts to perform each function. Theembodiment where each constitutional part is combined and the embodimentwhere one constitutional part is divided are also included in the scopeof the present invention, if not departing from the essence of thepresent invention.

Also, some of constituents may not be indispensable constituentsperforming essential functions of the present invention but be selectiveconstituents improving only performance thereof. The present inventionmay be implemented by including only the indispensable constitutionalparts for implementing the essence of the present invention except theconstituents used in improving performance. The structure including onlythe indispensable constituents except the selective constituents used inimproving only performance is also included in the scope of the presentinvention.

The picture partitioning module 110 may partition an input picture intoone or more processing units. Here, the processing unit may be aprediction unit (PU), a transform unit (TU), or a coding unit (CU). Thepicture partitioning module 110 may partition one picture intocombinations of multiple coding units, prediction units, and transformunits, and may encode a picture by selecting one combination of codingunits, prediction units, and transform units with a predeterminedcriterion (e.g., cost function).

For example, one picture may be partitioned into multiple coding units.A recursive tree structure, such as a quad tree structure, may be usedto partition a picture into coding units. A coding unit which ispartitioned into other coding units with one picture or a largest codingunit as a root may be partitioned with child nodes corresponding to thenumber of partitioned coding units. A coding unit which is no longerpartitioned by a predetermined limitation serves as a leaf node. Thatis, when it is assumed that only square partitioning is possible for onecoding unit, one coding unit may be partitioned into four other codingunits at most.

Hereinafter, in the embodiment of the present invention, the coding unitmay mean a unit performing encoding, or a unit performing decoding.

A prediction unit may be one of partitions partitioned into a square ora rectangular shape having the same size in a single coding unit, or aprediction unit may be one of partitions partitioned so as to have adifferent shape/size in a single coding unit.

When a prediction unit subjected to intra prediction is generated basedon a coding unit and the coding unit is not the smallest coding unit,intra prediction may be performed without partitioning the coding unitinto multiple prediction units N×N.

The prediction modules 120 and 125 may include an inter predictionmodule 120 performing inter prediction and an intra prediction module125 performing intra prediction. Whether to perform inter prediction orintra prediction for the prediction unit may be determined, and detailedinformation (e.g., an intra prediction mode, a motion vector, areference picture, etc.) according to each prediction method may bedetermined. Here, the processing unit subjected to prediction may bedifferent from the processing unit for which the prediction method anddetailed content is determined. For example, the prediction method, theprediction mode, etc. may be determined by the prediction unit, andprediction may be performed by the transform unit. A residual value(residual block) between the generated prediction block and an originalblock may be input to the transform module 130. Also, prediction modeinformation, motion vector information, etc. used for prediction may beencoded with the residual value by the entropy encoding module 165 andmay be transmitted to a device for decoding a video. When a particularencoding mode is used, it is possible to transmit to a device fordecoding video by encoding the original block as it is withoutgenerating the prediction block through the prediction modules 120 and125.

The inter prediction module 120 may predict the prediction unit based oninformation of at least one of a previous picture or a subsequentpicture of the current picture, or may predict the prediction unit basedon information of some encoded regions in the current picture, in somecases. The inter prediction module 120 may include a reference pictureinterpolation module, a motion prediction module, and a motioncompensation module.

The reference picture interpolation module may receive reference pictureinformation from the memory 155 and may generate pixel information of aninteger pixel or less then the integer pixel from the reference picture.In the case of luma pixels, an 8-tap DCT-based interpolation filterhaving different filter coefficients may be used to generate pixelinformation of an integer pixel or less than an integer pixel in unitsof a ¼ pixel. In the case of chroma signals, a 4-tap DCT-basedinterpolation filter having different filter coefficient may be used togenerate pixel information of an integer pixel or less than an integerpixel in units of a ⅛ pixel.

The motion prediction module may perform motion prediction based on thereference picture interpolated by the reference picture interpolationmodule. As methods for calculating a motion vector, various methods,such as a full search-based block matching algorithm (FBMA), a threestep search (TSS), a new three-step search algorithm (NTS), etc., may beused. The motion vector may have a motion vector value in units of a ½pixel or a ¼ pixel based on an interpolated pixel. The motion predictionmodule may predict a current prediction unit by changing the motionprediction method. As motion prediction methods, various methods, suchas a skip method, a merge method, an AMVP (Advanced Motion VectorPrediction) method, an intra block copy method, etc., may be used.

The intra prediction module 125 may generate a prediction unit based onreference pixel information neighboring to a current block which ispixel information in the current picture. When the neighboring block ofthe current prediction unit is a block subjected to inter prediction andthus a reference pixel is a pixel subjected to inter prediction, thereference pixel included in the block subjected to inter prediction maybe replaced with reference pixel information of a neighboring blocksubjected to intra prediction. That is, when a reference pixel is notavailable, at least one reference pixel of available reference pixelsmay be used instead of unavailable reference pixel information.

Prediction modes in intra prediction may include a directionalprediction mode using reference pixel information depending on aprediction direction and a non-directional prediction mode not usingdirectional information in performing prediction. A mode for predictingluma information may be different from a mode for predicting chromainformation, and in order to predict the chroma information, intraprediction mode information used to predict luma information orpredicted luma signal information may be utilized.

In performing intra prediction, when the size of the prediction unit isthe same as the size of the transform unit, intra prediction may beperformed on the prediction unit based on pixels positioned at the left,the top-left, and the top of the prediction unit. However, in performingintra prediction, when the size of the prediction unit is different fromthe size of the transform unit, intra prediction may be performed usinga reference pixel based on the transform unit. Also, intra predictionusing N×N partitioning may be used for only the smallest coding unit.

In the intra prediction method, a prediction block may be generatedafter applying an AIS (Adaptive Intra Smoothing) filter to a referencepixel depending on the prediction modes. The type of the AIS filterapplied to the reference pixel may vary. In order to perform the intraprediction method, an intra prediction mode of the current predictionunit may be predicted from the intra prediction mode of the predictionunit neighboring to the current prediction unit. In prediction of theprediction mode of the current prediction unit by using mode informationpredicted from the neighboring prediction unit, when the intraprediction mode of the current prediction unit is the same as the intraprediction mode of the neighboring prediction unit, informationindicating that the prediction modes of the current prediction unit andthe neighboring prediction unit are equal to each other may betransmitted using predetermined flag information. When the predictionmode of the current prediction unit is different from the predictionmode of the neighboring prediction unit, entropy encoding may beperformed to encode prediction mode information of the current block.

Also, a residual block including information on a residual value whichis a different between the prediction unit subjected to prediction andthe original block of the prediction unit may be generated based onprediction units generated by the prediction modules 120 and 125. Thegenerated residual block may be input to the transform module 130.

The transform module 130 may transform the residual block including theinformation on the residual value between the original block and theprediction unit generated by the prediction modules 120 and 125 by usinga transform method, such as discrete cosine transform (DCT), discretesine transform (DST), and KLT. Whether to apply DCT, DST, or KLT inorder to transform the residual block may be determined based on intraprediction mode information of the prediction unit used to generate theresidual block.

The quantization module 135 may quantize values transformed to afrequency domain by the transform module 130. Quantization coefficientsmay vary depending on the block or importance of a picture. The valuescalculated by the quantization module 135 may be provided to the inversequantization module 140 and the rearrangement module 160.

The rearrangement module 160 may rearrange coefficients of quantizedresidual values.

The rearrangement module 160 may change a coefficient in the form of atwo-dimensional block into a coefficient in the form of aone-dimensional vector through a coefficient scanning method. Forexample, the rearrangement module 160 may scan from a DC coefficient toa coefficient in a high frequency domain using a zigzag scanning methodso as to change the coefficients to be in the form of one-dimensionalvectors. Depending on the size of the transform unit and the intraprediction mode, vertical direction scanning where coefficients in theform of two-dimensional blocks are scanned in the column direction orhorizontal direction scanning where coefficients in the form oftwo-dimensional blocks are scanned in the row direction may be usedinstead of zigzag scanning. That is, which scanning method among zigzagscanning, vertical direction scanning, and horizontal direction scanningis used may be determined depending on the size of the transform unitand the intra prediction mode.

The entropy encoding module 165 may perform entropy encoding based onthe values calculated by the rearrangement module 160. Entropy encodingmay use various encoding methods, for example, exponential Golombcoding, context-adaptive variable length coding (CAVLC), andcontext-adaptive binary arithmetic coding (CABAC).

The entropy encoding module 165 may encode a variety of information,such as residual value coefficient information and block typeinformation of the coding unit, prediction mode information, partitionunit information, prediction unit information, transform unitinformation, motion vector information, reference frame information,block interpolation information, filtering information, etc. from therearrangement module 160 and the prediction modules 120 and 125.

The entropy encoding module 165 may entropy encode the coefficients ofthe coding unit input from the rearrangement module 160.

The inverse quantization module 140 may inversely quantize the valuesquantized by the quantization module 135 and the inverse transformmodule 145 may inversely transform the values transformed by thetransform module 130. The residual value generated by the inversequantization module 140 and the inverse transform module 145 may becombined with the prediction unit predicted by a motion estimationmodule, a motion compensation module, and the intra prediction module ofthe prediction modules 120 and 125 such that a reconstructed block canbe generated.

The filter module 150 may include at least one of a deblocking filter,an offset correction unit, and an adaptive loop filter (ALF).

The deblocking filter may remove block distortion that occurs due toboundaries between the blocks in the reconstructed picture. In order todetermine whether to perform deblocking, the pixels included in severalrows or columns in the block may be a basis of determining whether toapply the deblocking filter to the current block. When the deblockingfilter is applied to the block, a strong filter or a weak filter may beapplied depending on required deblocking filtering strength. Also, inapplying the deblocking filter, horizontal direction filtering andvertical direction filtering may be processed in parallel.

The offset correction module may correct offset with the originalpicture in units of a pixel in the picture subjected to deblocking. Inorder to perform the offset correction on a particular picture, it ispossible to use a method of applying offset in consideration of edgeinformation of each pixel or a method of partitioning pixels of apicture into the predetermined number of regions, determining a regionto be subjected to perform offset, and applying the offset to thedetermined region.

Adaptive loop filtering (ALF) may be performed based on the valueobtained by comparing the filtered reconstructed picture and theoriginal picture. The pixels included in the picture may be divided intopredetermined groups, a filter to be applied to each of the groups maybe determined, and filtering may be individually performed for eachgroup. Information on whether to apply ALF and a luma signal may betransmitted by coding units (CU). The shape and filter coefficient of afilter for ALF may vary depending on each block. Also, the filter forALF in the same shape (fixed shape) may be applied regardless ofcharacteristics of the application target block.

The memory 155 may store the reconstructed block or picture calculatedthrough the filter module 150. The stored reconstructed block or picturemay be provided to the prediction modules 120 and 125 in performinginter prediction.

FIG. 2 is a block diagram illustrating a device for decoding a videoaccording to an embodiment of the present invention.

Referring to FIG. 2 , the device 200 for decoding a video may include:an entropy decoding module 210, a rearrangement module 215, an inversequantization module 220, an inverse transform module 225, predictionmodules 230 and 235, a filter module 240, and a memory 245.

When a video bitstream is input from the device for encoding a video,the input bitstream may be decoded according to an inverse process ofthe device for encoding a video.

The entropy decoding module 210 may perform entropy decoding accordingto an inverse process of entropy encoding by the entropy encoding moduleof the device for encoding a video. For example, corresponding to themethods performed by the device for encoding a video, various methods,such as exponential Golomb coding, context-adaptive variable lengthcoding (CAVLC), and context-adaptive binary arithmetic coding (CABAC)may be applied.

The entropy decoding module 210 may decode information on intraprediction and inter prediction performed by the device for encoding avideo.

The rearrangement module 215 may perform rearrangement on the bitstreamentropy decoded by the entropy decoding module 210 based on therearrangement method used in the device for encoding a video. Therearrangement module may reconstruct and rearrange the coefficients inthe form of one-dimensional vectors to the coefficient in the form oftwo-dimensional blocks. The rearrangement module 215 may receiveinformation related to coefficient scanning performed in the device forencoding a video and may perform rearrangement via a method of inverselyscanning the coefficients based on the scanning order performed in thedevice for encoding a video.

The inverse quantization module 220 may perform inverse quantizationbased on a quantization parameter received from the device for encodinga video and the rearranged coefficients of the block.

The inverse transform module 225 may perform the inverse transform,i.e., inverse DCT, inverse DST, and inverse KLT, which is the inverseprocess of transform, i.e., DCT, DST, and KLT, performed by thetransform module on the quantization result by the device for encoding avideo. Inverse transform may be performed based on a transfer unitdetermined by the device for encoding a video. The inverse transformmodule 225 of the device for decoding a video may selectively performtransform schemes (e.g., DCT, DST, and KLT) depending on multiple piecesof information, such as the prediction method, the size of the currentblock, the prediction direction, etc.

The prediction modules 230 and 235 may generate a prediction block basedon information on prediction block generation received from the entropydecoding module 210 and previously decoded block or picture informationreceived from the memory 245.

As described above, like the operation of the device for encoding avideo, in performing intra prediction, when the size of the predictionunit is the same as the size of the transform unit, intra prediction maybe performed on the prediction unit based on the pixels positioned atthe left, the top-left, and the top of the prediction unit. Inperforming intra prediction, when the size of the prediction unit isdifferent from the size of the transform unit, intra prediction may beperformed using a reference pixel based on the transform unit. Also,intra prediction using N×N partitioning may be used for only thesmallest coding unit.

The prediction modules 230 and 235 may include a prediction unitdetermination module, an inter prediction module, and an intraprediction module. The prediction unit determination module may receivea variety of information, such as prediction unit information,prediction mode information of an intra prediction method, informationon motion prediction of an inter prediction method, etc. from theentropy decoding module 210, may divide a current coding unit intoprediction units, and may determine whether inter prediction or intraprediction is performed on the prediction unit. By using informationrequired in inter prediction of the current prediction unit receivedfrom the device for encoding a video, the inter prediction module 230may perform inter prediction on the current prediction unit based oninformation of at least one of a previous picture or a subsequentpicture of the current picture including the current prediction unit.Alternatively, inter prediction may be performed based on information ofsome pre-reconstructed regions in the current picture including thecurrent prediction unit.

In order to perform inter prediction, it may be determined for thecoding unit which of a skip mode, a merge mode, an AMVP mode, and aninter block copy mode is used as the motion prediction method of theprediction unit included in the coding unit.

The intra prediction module 235 may generate a prediction block based onpixel information in the current picture. When the prediction unit is aprediction unit subjected to intra prediction, intra prediction may beperformed based on intra prediction mode information of the predictionunit received from the device for encoding a video. The intra predictionmodule 235 may include an adaptive intra smoothing (AIS) filter, areference pixel interpolation module, and a DC filter. The AIS filterperforms filtering on the reference pixel of the current block, andwhether to apply the filter may be determined depending on theprediction mode of the current prediction unit. AIS filtering may beperformed on the reference pixel of the current block by using theprediction mode of the prediction unit and AIS filter informationreceived from the device for encoding a video. When the prediction modeof the current block is a mode where AIS filtering is not performed, theAIS filter may not be applied.

When the prediction mode of the prediction unit is a prediction mode inwhich intra prediction is performed based on the pixel value obtained byinterpolating the reference pixel, the reference pixel interpolationmodule may interpolate the reference pixel to generate the referencepixel of an integer pixel or less than an integer pixel. When theprediction mode of the current prediction unit is a prediction mode inwhich a prediction block is generated without interpolation thereference pixel, the reference pixel may not be interpolated. The DCfilter may generate a prediction block through filtering when theprediction mode of the current block is a DC mode.

The reconstructed block or picture may be provided to the filter module240. The filter module 240 may include the deblocking filter, the offsetcorrection module, and the ALF.

Information on whether or not the deblocking filter is applied to thecorresponding block or picture and information on which of a strongfilter and a weak filter is applied when the deblocking filter isapplied may be received from the device for encoding a video. Thedeblocking filter of the device for decoding a video may receiveinformation on the deblocking filter from the device for encoding avideo, and may perform deblocking filtering on the corresponding block.

The offset correction module may perform offset correction on thereconstructed picture based on the type of offset correction and offsetvalue information applied to a picture in performing encoding.

The ALF may be applied to the coding unit based on information onwhether to apply the ALF, ALF coefficient information, etc. receivedfrom the device for encoding a video. The ALF information may beprovided as being included in a particular parameter set.

The memory 245 may store the reconstructed picture or block for use as areference picture or block, and may provide the reconstructed picture toan output module.

As described above, in the embodiment of the present invention, forconvenience of explanation, the coding unit is used as a termrepresenting a unit for encoding, but the coding unit may serve as aunit performing decoding as well as encoding.

In addition, a current block may represent a target block to beencoded/decoded. And, the current block may represent a coding treeblock (or a coding tree unit), a coding block (or a coding unit), atransform block (or a transform unit), a prediction block (or aprediction unit), or the like depending on an encoding/decoding step. Inthis description, ‘a unit’ may represent a base unit for performing aspecific encoding/decoding process and ‘a block’ may represent apredetermined-sized sample array. Unless otherwise specified, ‘a block’and ‘a unit’ may be used to mean the same thing. For example, in theafter-mentioned example, it may be understood that a coding block and acoding unit mutually have the same meaning.

One picture may be encoded/decoded by being divided into base blockshaving a square shape or a non-square shape. In this case, the baseblock may be referred to as a coding tree unit. The coding tree unit maybe defined as a coding unit of the largest size allowed within asequence or a slice. Information representing whether the coding treeunit has a square shape or has a non-square shape or informationregarding a size of the coding tree unit may be signaled through asequence parameter set, a picture parameter set, or a slice header. Thecoding tree unit may be divided into smaller size partitions. In thiscase, if it is assumed that a depth of a partition generated by dividingthe coding tree unit is 1, a depth of a partition generated by dividingthe partition having depth 1 may be defined as 2. That is, a partitiongenerated by dividing a partition having a depth k in the coding treeunit may be defined as having a depth k+1.

A partition of arbitrary size generated by dividing a coding tree unitmay be defined as a coding unit. The coding unit may be recursivelydivided or divided into base units for performing prediction,quantization, transform, or in-loop filtering, and the like. Forexample, a partition of arbitrary size generated by dividing the codingunit may be defined as a coding unit, or may be defined as a transformunit or a prediction unit, which is a base unit for performingprediction, quantization, transform or in-loop filtering and the like.

Alternatively, a prediction block having the same size as a coding blockor smaller than a coding block may be determined by the predictionpartitioning of a coding block. For the prediction partitioning of acoding block, any of partition modes (Part mode) showing a partitioningshape of a coding block may be specified. Information for determining apartition index showing any of partition mode candidates may be signaledin a bitstream. Alternatively, based on at least one of a size or shapeof a coding block or an encoding mode, the partition index of a codingblock may be determined. The size or shape of a prediction block may bedetermined based on a partition mode specified by a partition index. Apartition mode candidate may include an asymmetric partition shape(e.g., nL×2N, nR×2N, 2N×nU, 2N×nD). The number or type of asymmetricpartition mode candidates that a coding block may use may be determinedbased on at least one of the size or shape of a coding block or anencoding mode.

FIG. 3 is a diagram illustrating a partition mode candidate which may beapplied to a coding block when a coding block is encoded by interprediction.

When a coding block is encoded by inter prediction, any of 8 partitionmode candidates shown in FIG. 3 may be applied to a coding block.

On the other hand, when a coding block is encoded by intra prediction,only a square partition partitioning may be applied to a coding block.In other words, when a coding block is encoded by intra prediction, apartition mode, PART_2N×2N or PART_N×N, may be applied to a codingblock.

PART_N×N may be applied when a coding block has the minimum size. Inthis case, the minimum size of a coding block may be predefined in anencoder and a decoder. Alternatively, information regarding the minimumsize of a coding block may be signaled in a bitstream. In an example,the minimum size of a coding block may be signaled in a slice header.Accordingly, the minimum size of a coding block may be differentlydetermined per slice.

In another example, a partition mode candidate that a coding block mayuse may be differently determined according to at least one of the sizeor shape of a coding block. In an example, the number or type ofpartition mode candidates that a coding block may use may be differentlydetermined according to at least one of the size or shape of a codingblock.

Alternatively, based on the size or shape of a coding block, the type ornumber of asymmetric partition mode candidates that a coding block mayuse may be determined. The number or type of asymmetric partition modecandidates that a coding block may use may be differently determinedaccording to at least one of the size or shape of a coding block. In anexample, when a coding block has a non-square shape that width isgreater than height, at least one of PART_2N×N, PART_2N×nU or PART_2N×nDmay not be used as a partition mode candidate of a coding block. When acoding block has a non-square shape that height is greater than width,at least one of PART_N×2N, PART_nL×2N, PART_nR×2N may not be used as apartition mode candidate of a coding block.

Generally, a prediction block may have a 4×4 to 64×64 size. But, when acoding block is encoded by inter prediction, a prediction block may beset not to have a 4×4 size to reduce memory bandwidth in performingmotion compensation.

Based on a partition mode, a coding block may be recursivelypartitioned. In other words, based on a partition mode determined by apartition index, a coding block may be partitioned and each partitiongenerated by partitioning a coding block may be defined as a codingblock.

Hereinafter, a method of partitioning a coding unit will be described inmore detail. In the after-mentioned example, a coding unit may mean acoding tree unit or a coding unit included in a coding tree unit. Inaddition, ‘a partition’ generated as a coding block is partitioned maymean ‘a coding block.’ The after-mentioned partitioning method may beapplied when a coding block is partitioned into a plurality ofprediction blocks or transform blocks.

A coding unit may be partitioned by at least one line. In this case, anangle of a line which partitions a coding unit may be a value within arange of 0 to 360 degrees. For example, the angle of a horizontal linemay be 0 degrees, the angle of a vertical line may be 90 degrees, theangle of a diagonal line in a right-top direction may be 45 degrees andthe angle of a left-top diagonal line may be 135 degrees.

When a coding unit is partitioned by a plurality of lines, a pluralityof lines may entirely have the same angle. Alternatively, at least oneof a plurality of lines may have a different angle from other lines.Alternatively, a plurality of lines partitioning a coding tree unit or acoding unit may have a predefined angle difference (e.g., 90 degrees).

Information regarding a line partitioning a coding unit may bedetermined by a partition mode. Alternatively, information on at leastone of the number, direction, angle or position in a block of a line maybe encoded.

For convenience of description, in the after-mentioned example, it isassumed that a coding unit is partitioned into a plurality of codingunits by using at least one of a vertical line or a horizontal line.

The number of vertical lines or horizontal lines partitioning a codingunit may be at least one or more. In an example, a coding unit may bepartitioned into 2 partitions by using one vertical line or onehorizontal line. Alternatively, a coding unit may be partitioned into 3partitions by using two vertical lines or two horizontal lines.Alternatively, a coding unit may be partitioned into 4 partitions withwidth and height smaller than a coding unit by ½ by using one verticalline or one horizontal line.

When a coding unit is partitioned into a plurality of partitions byusing at least one vertical line or at least one horizontal line,partitions may have a uniform size. Alternatively, one partition mayhave a different size from other partitions or each partition may have adifferent size. In an example, when a coding unit is partitioned by twohorizontal lines or two vertical lines, a coding unit may be partitionedinto 3 partitions. In this case, a width or height ratio of 3 partitionsmay be n:2n:n, 2n:n:n, or n:n:2n.

In the after-mentioned examples, when a coding unit is partitioned into4 partitions, it is referred to as a quad tree-based partitioning. And,when a coding unit is partitioned into 2 partitions, it is referred toas a binary tree-based partitioning. In addition, when a coding unit ispartitioned into 3 partitions, it is referred to as a triple tree-basedpartitioning.

In the after-mentioned drawing, it will be shown that one vertical lineand/or one horizontal line is used to partition a coding unit, but itwill be described that it is also included in the range of the presentinvention when a coding unit is partitioned into more partitions thanshown or fewer partitions than shown by using more vertical lines and/ormore horizontal lines than shown.

FIG. 4 shows an example of hierarchically partitioning a coding blockbased on a tree structure as an embodiment to which the presentinvention is applied.

An input video signal is decoded in a predetermined block unit and abase unit for decoding an input video signal is referred to as a codingblock. A coding block may be a unit of performing intra/interprediction, transform and quantization. In addition, a prediction mode(e.g., an intra prediction mode or an inter prediction mode) may bedetermined in a unit of a coding block and prediction blocks included ina coding block may share a determined prediction mode. A coding blockmay be a square or non-square block in an arbitrary size within a rangeof 8×8 to 64×64 or a square or non-square block with a size of 128×128,256×256 or more.

Specifically, a coding block may be hierarchically partitioned based onat least one of a quad tree partitioning method, a binary tree partitionmethod or a triple tree partitioning method. A quad tree-basedpartitioning may mean a method in which a 2N×2N coding block ispartitioned into four N×N coding blocks. A binary tree-basedpartitioning may mean a method in which one coding block is partitionedinto two coding blocks. A triple tree-based partitioning may mean amethod in which one coding block is partitioned into three codingblocks. Even when triple tree or binary tree-based partitioning isperformed, a square coding block may exist at a lower depth.

Partitions generated by binary tree-based partitioning may be symmetricor asymmetric. In addition, a coding block partitioned based on a binarytree may be a square block or a non-square block (e.g., a rectangle).

FIG. 5 is a diagram showing a partitioning shape for a coding blockbased on binary tree partitioning. A partition shape of a coding blockbased on binary tree partitioning may include a symmetric type such as2N×N (a non-square coding unit in a horizontal direction) or N×2N (anon-square coding unit in a vertical direction), etc. or an asymmetrictype such as nL×2N, nR×2N, 2N×nU or 2N×nD, etc. Only one of symmetrictypes or asymmetric types may be allowed as a partitioning shape of acoding block.

A triple tree partitioning shape may include at least one of a shapepartitioning a coding block into 2 vertical lines or a shapepartitioning a coding block into 2 horizontal lines. 3 non-squarepartitions may be generated by triple tree partitioning.

FIG. 6 shows a triple tree partitioning shape.

A triple tree partitioning shape may include a shape partitioning acoding block into 2 horizontal lines or a shape partitioning a codingblock into 2 vertical lines. The width or height ratio of partitionsgenerated by partitioning a coding block may be n:2n:n, 2n:n:n orn:n:2n.

The position of a partition with the largest width or height among 3partitions may be predefined in an encoder and a decoder. Alternatively,information showing a partition with the largest width or height among 3partitions may be signaled in a bitstream.

Only square partitioning or non-square partitioning in a symmetric shapemay be allowed for a coding unit. In this case, when a coding unit ispartitioned into square partitions, it may correspond to quad tree CUpartitioning and when a coding unit is partitioned into non-squarepartitions in a symmetric shape, it may correspond to binary treepartitioning. When a coding tree unit is partitioned into squarepartitions and non-square partitions in a symmetric shape, it maycorrespond to quad tree and binary tree CU partitioning (QTBT).

Binary tree or triple tree-based partitioning may be performed for acoding block in which quad tree-based partitioning is not performed anymore. A coding block generated by binary tree or triple tree-basedpartitioning may be partitioned into smaller coding blocks. In thiscase, at least one of quad tree partitioning, triple tree partitioningor binary tree partitioning may be set not to be applied to a codingblock. Alternatively, binary tree partitioning in a predetermineddirection or triple tree partitioning in a predetermined direction maynot be allowed for the coding block. In an example, quad treepartitioning and triple tree partitioning may be set to be unallowablefor a coding block generated by binary tree or triple tree-basedpartitioning. Only binary tree partitioning may be allowed for thecoding block.

Alternatively, only the largest coding block among 3 coding blocksgenerated by triple tree-based partitioning may be partitioned intosmaller coding blocks. Alternatively, binary tree-based partitioning ortriple tree-based partitioning may be allowed only for the largestcoding block among 3 coding blocks generated by triple tree-basedpartitioning.

The partitioning shape of a lower depth partition may be dependentlydetermined based on the partitioning shape of a top depth partition. Inan example, when a top partition and a lower partition are partitionedbased on a binary tree, only binary tree-based partitioning in the sameshape as a binary tree partitioning shape of a top depth partition maybe allowed for a lower depth partition. For example, when the binarytree partitioning shape of a top depth partition is 2N×N, the binarytree partitioning shape of a lower depth partition may be also set to be2N×N. Alternatively, when the binary tree partitioning shape of a topdepth partition is N×2N, the partitioning shape of a lower depthpartition may be also set to be N×2N.

Alternatively, binary tree partitioning in the same partitioningdirection as a top depth partition or triple tree partitioning in thesame partitioning direction as a top depth partition may be set to beunallowable for the largest partition among partitions generated bytriple tree-based partitioning.

Alternatively, the partitioning shape of a lower depth partition may bedetermined by considering the partitioning shape of a top depthpartition and the partitioning shape of a neighboring lower depthpartition. Concretely, if a top depth partition is partitioned based ona binary tree, the partitioning shape of a lower depth partition may bedetermined to avoid the same result as a top depth partition ispartitioned based on a quad tree. In an example, when the partitioningshape of a top depth partition is 2N×N and the partitioning shape of aneighboring lower depth partition is N×2N, the partitioning shape of acurrent lower depth partition may not be set to be N×2N. It is becausewhen the partitioning shape of a current lower depth partition is N×2N,it causes the same result as a top depth partition is partitioned basedon a N×N-shaped quad tree. When the partitioning shape of a top depthpartition is N×2N and the partitioning shape of a neighboring lowerdepth partition is 2N×N, the partitioning shape of a current lower depthpartition may not be set to be 2N×N. In other words, when the binarytree partitioning shape of a top depth partition is different from thebinary tree partitioning shape of a neighboring lower depth partition,the binary tree partitioning shape of a current lower depth partitionmay be set the same as the binary tree partitioning shape of a top depthpartition.

Alternatively, the binary tree partitioning shape of a lower depthpartition may be set to be different from the binary tree partitioningshape of a top depth partition.

An allowable binary tree partitioning shape may be determined in a unitof a sequence, a slice or a coding unit. In an example, a binary treepartitioning shape allowable for a coding tree unit may be limited to a2N×N or N×2N shape. An allowable partitioning shape may be predefined inan encoder or a decoder. Alternatively, information on an allowablepartitioning shape or an unallowable partitioning shape may be encodedand signaled in a bitstream.

FIG. 7 is a diagram showing an example in which only a specific shape ofbinary tree-based partitioning is allowed.

(a) in FIG. 7 represents an example in which only N×2N-shaped binarytree-based partitioning is allowed and (b) in FIG. 7 represents anexample in which only 2N×N-shaped binary tree-based partitioning isallowed.

To represent various partitioning shapes, information on quad treepartitioning, information on binary tree partitioning or information ontriple tree partitioning may be used. Information on quad treepartitioning may include at least one of information indicating whetherquad tree-based partitioning is performed or information on thesize/depth of a coding block in which quad tree-based partitioning isallowed. Information on binary tree partitioning may include at leastone of information indicating whether binary tree-based partitioning isperformed, information on whether binary tree-based partitioning is avertical direction or a horizontal direction, information on thesize/depth of a coding block in which binary tree-based partitioning isallowed or information on the size/depth of a coding block in whichbinary tree-based partitioning is not allowed. Information on tripletree partitioning may include at least one of information indicatingwhether triple tree-based partitioning is performed, information onwhether triple tree-based partitioning is a vertical direction or ahorizontal direction, information on the size/depth of a coding block inwhich triple tree-based partitioning is allowed or information on thesize/depth of a coding block in which triple tree-based partitioning isnot allowed. Information on the size of a coding block may represent atleast one minimum value or maximum value among the width, height,product of width and height or ratio of width and height of a codingblock.

In an example, when the width or height of a coding block is smallerthan the minimum size in which binary tree partitioning is allowed, orwhen the partitioning depth of a coding block is greater than themaximum depth in which binary tree partitioning is allowed, binarytree-based partitioning may not be allowed for the coding block.

In an example, when the width or height of a coding block is smallerthan the minimum size in which triple tree partitioning is allowed, orwhen the partitioning depth of a coding block is greater than themaximum depth in which triple tree partitioning is allowed, tripletree-based partitioning may not be allowed for the coding block.

Information on a condition that binary tree or triple tree-basedpartitioning is allowed may be signaled in a bitstream. The informationmay be encoded in a unit of a sequence, a picture or a clip. The clipmay mean at least one of a slice, a tile group, a tile, a brick, acoding block, a prediction block or a transform block.

In an example, in a bitstream, ‘max_mtt_depth_idx_minus1’, a syntaxrepresenting the maximum depth that binary tree/triple tree partitioningis allowed may be encoded/decoded in a bitstream. In this case,max_mtt_depth_idx_minus1+1 may indicate the maximum depth that binarytree/triple tree partitioning is allowed.

In an example, at least one of the number of times that binarytree/triple tree partitioning is allowed, the maximum depth that binarytree/triple tree partitioning is allowed or the number of depths thatbinary tree/triple tree partitioning is allowed may be signaled in asequence or a slice level. Accordingly, at least one of the number oftimes that binary tree/triple tree partitioning is allowed, the maximumdepth that binary tree/triple tree partitioning is allowed or the numberof depths that binary tree/triple tree partitioning is allowed for afirst slice and a second slice may be different. In an example, whilefor the first slice, binary tree/triple tree partitioning may be allowedonly in one depth, for the second slice, binary tree/triple treepartitioning may be allowed in two depths.

In an example shown in FIG. 8 , FIG. 8 showed that binary treepartitioning is performed for a coding unit having a depth of 2 and acoding unit having a depth of 3. Accordingly, at least one ofinformation representing the number of times (2 times) that binary treepartitioning is performed in a coding tree unit, informationrepresenting the maximum depth (depth 3) of a partition generated bybinary tree partitioning in a coding tree unit or informationrepresenting the number of partition depths (2 depths, depth 2 and depth3) that binary tree partitioning is applied in a coding tree unit may beencoded/decoded in a bitstream.

Alternatively, the number of times that binary tree/triple treepartitioning is allowed, a depth that binary tree/triple treepartitioning is allowed or the number of depths that binary tree/tripletree partitioning is allowed may be predefined in an encoder and adecoder. Alternatively, based on at least one of an index of a sequenceor a slice or the size/shape of a coding unit, the number of times thatbinary tree/triple tree partitioning is allowed, a depth that binarytree/triple tree partitioning is allowed or the number of depths thatbinary tree/triple tree partitioning is allowed may be determined. In anexample, for a first slice, binary tree/triple tree partitioning may beallowed in one depth and for a second slice, binary tree/triple treepartitioning may be allowed in two depths.

In another example, at least one of the number of times that binary treepartitioning is allowed, a depth that binary tree partitioning isallowed or the number of depths that binary tree partitioning is allowedmay be set differently according to a temporal level identifier(TemporalID) of a slice or a picture. In this case, the temporal levelidentifier (TemporalID) is used to identify each of a plurality of imagelayers having at least one or more scalabilities of view, spatial,temporal or quality.

As shown in FIG. 4 , the first coding block 300 with the partitioningdepth (split depth) of k may be partitioned into multiple second codingblocks based on a quad tree. For example, the second coding blocks 310to 340 may be a square block having the half width and height of thefirst coding block and the partitioning depth of the second coding blockmay be increased to k+1.

The second coding block 310 with the partitioning depth of k+1 may bepartitioned into multiple third coding blocks with the partitioningdepth of k+2. Partitioning of the second coding block 310 may beperformed by selectively using one of a quad tree or a binary treedepending on a partitioning method. In this case, the partitioningmethod may be determined based on at least one of information indicatingquad tree-based partitioning or information indicating binary tree-basedpartitioning.

When the second coding block 310 is partitioned based on a quad tree,the second coding block 310 may be partitioned into four third codingblocks 310 a having the half width and height of the second coding blockand the partitioning depth of the third coding block 310 a may beincreased to k+2. On the other hand, when the second coding block 310 ispartitioned based on a binary tree, the second coding block 310 may bepartitioned into two third coding blocks. In this case, each of twothird coding blocks may be a non-square block having one of the halfwidth and height of the second coding block and the partitioning depthmay be increased to k+2. The second coding block may be determined as anon-square block in a horizontal direction or a vertical directionaccording to a partitioning direction and the partitioning direction maybe determined based on information on whether binary tree-basedpartitioning is performed in a vertical direction or a horizontaldirection.

Meanwhile, the second coding block 310 may be determined as a leafcoding block that is no longer partitioned based on a quad tree or abinary tree and in this case, the corresponding coding block may be usedas a prediction block or a transform block.

Like partitioning of the second coding block 310, the third coding block310 a may be determined as a leaf coding block or may be furtherpartitioned based on a quad tree or a binary tree.

On the other hand, the third coding block 310 b partitioned based on abinary tree may be further partitioned into coding blocks 310 b-2 in avertical direction or coding blocks 310 b-3 in a horizontal directionbased on a binary tree and the partitioning depth of the correspondingcoding block may be increased to k+3. Alternatively, the third codingblock 310 b may be determined as a leaf coding block 310 b-1 that is nolonger partitioned based on a binary tree and in this case, thecorresponding coding block 310 b-1 may be used as a prediction block ora transform block. However, the above-mentioned partitioning process maybe limitedly performed based on at least one of information on thesize/depth of a coding block that quad tree-based partitioning isallowed, information on the size/depth of a coding block that binarytree-based partitioning is allowed or information on the size/depth of acoding block that binary tree-based partitioning is not allowed.

The number of candidates that represent a size of a coding block may belimited to a predetermined number or a size of a coding block in apredetermined unit may have a fixed value. In an example, the size of acoding block in a sequence or in a picture may be limited to having anyof 256×256, 128×128 or 32×32. Information representing the size of acoding block in a sequence or in a picture may be signaled in a sequenceheader or a picture header.

As a result of partitioning based on a quad tree and a binary tree, acoding unit may be represented as a square or rectangular shape in anarbitrary size.

As shown in FIG. 4 , the first coding block 300 with the partitioningdepth (split depth) of k may be partitioned into multiple second codingblocks based on a quad tree. For example, the second coding blocks 310to 340 may be a square block having the half width and height of thefirst coding block and the partitioning depth of the second coding blockmay be increased to k+1.

The second coding block 310 with the partitioning depth of k+1 may bepartitioned into multiple third coding blocks with the partitioningdepth of k+2. Partitioning of the second coding block 310 may beperformed by selectively using one of a quad tree or a binary treedepending on a partitioning method. In this case, the partitioningmethod may be determined based on at least one of information indicatingquad tree-based partitioning or information indicating binary tree-basedpartitioning.

When the second coding block 310 is partitioned based on a quad tree,the second coding block 310 may be partitioned into four third codingblocks 310 a having the half width and height of the second coding blockand the partitioning depth of the third coding block 310 a may beincreased to k+2. On the other hand, when the second coding block 310 ispartitioned based on a binary tree, the second coding block 310 may bepartitioned into two third coding blocks. In this case, each of twothird coding blocks may be a non-square block having one of the halfwidth and height of the second coding block and the partitioning depthmay be increased to k+2. The second coding block may be determined as anon-square block in a horizontal direction or a vertical directionaccording to a partitioning direction and the partitioning direction maybe determined based on information on whether binary tree-basedpartitioning is performed in a vertical direction or a horizontaldirection.

Meanwhile, the second coding block 310 may be determined as a leafcoding block that is no longer partitioned based on a quad tree or abinary tree and in this case, the corresponding coding block may be usedas a prediction block or a transform block.

Like partitioning of the second coding block 310, the third coding block310 a may be determined as a leaf coding block or may be furtherpartitioned based on a quad tree or a binary tree.

On the other hand, the third coding block 310 b partitioned based on abinary tree may be further partitioned into coding blocks 310 b-2 in avertical direction or coding blocks 310 b-3 in a horizontal directionbased on a binary tree and the partitioning depth of the correspondingcoding block may be increased to k+3. Alternatively, the third codingblock 310 b may be determined as a leaf coding block 310 b-1 that is nolonger partitioned based on a binary tree and in this case, thecorresponding coding block 310 b-1 may be used as a prediction block ora transform block. However, the above-mentioned partitioning process maybe limitedly performed based on at least one of information on thesize/depth of a coding block that quad tree-based partitioning isallowed, information on the size/depth of a coding block that binarytree-based partitioning is allowed or information on the size/depth of acoding block that binary tree-based partitioning is not allowed.

The number of candidates that represent a size of a coding block may belimited to a predetermined number or a size of a coding block in apredetermined unit may have a fixed value. In an example, the size of acoding block in a sequence or in a picture may be limited to having anyof 256×256, 128×128 or 32×32. Information representing the size of acoding block in a sequence or in a picture may be signaled in a sequenceheader or a picture header.

As a result of partitioning based on a quad tree and a binary tree, acoding unit may be represented as a square or rectangular shape in anarbitrary size.

A transform skip may be set not to be used for a coding unit generatedby binary tree-based partitioning or triple tree-based partitioning.Alternatively, a transform skip may be set to be applied to at least oneof a vertical direction or a horizontal direction in a non-square codingunit. In an example, when a transform skip is applied to a horizontaldirection, it represents only scaling is performed withouttransform/inverse transform in a horizontal direction andtransform/inverse transform using DCT or DST is performed in a verticaldirection. When a transform skip is applied to a vertical direction, itrepresents only scaling is performed without transform/inverse transformin a vertical direction and transform/inverse transform using DCT or DSTis performed in a horizontal direction.

Information on whether inverse transform for a horizontal direction isskipped or information on whether inverse transform for a verticaldirection is skipped may be signaled in a bitstream. In an example,information on whether inverse transform for a horizontal direction isskipped may be a 1-bit flag, ‘hor_transform_skip_flag’, and informationon whether inverse transform for a vertical direction is skipped may bea 1-bit flag, ‘ver_transform_skip_flag’.

An encoder may determine whether ‘hor_transform_skip_flag’ or‘ver_transform_skip_flag’ is encoded according to the size and/or shapeof a current block. In an example, when a current block has a N×2Nshape, hor_transform_skip_flag may be encoded and the encoding ofver_transform_skip_flag may be omitted. When a current block has a 2N×Nshape, ver_transform_skip_flag may be encoded andhor_transform_skip_flag may be omitted.

Alternatively, based on the size and/or shape of a current block,whether a transform skip for a horizontal direction is performed orwhether a transform skip for a vertical direction is performed may bedetermined. In an example, when a current block has a N×2N shape, atransform skip may be applied to a horizontal direction andtransform/inverse transform may be performed for a vertical direction.When a current block has a 2N×N shape, a transform skip may be appliedto a vertical direction and transform/inverse transform may be performedfor a horizontal direction. Transform/inverse transform may be performedbased on at least one of DCT or DST.

As a result of partitioning based on a quad tree, a binary tree or atriple tree, a coding block which is not partitioned any more may beused as a prediction block or a transform block. In other words, acoding block generated by quad tree partitioning or binary treepartitioning may be used as a prediction block or a transform block. Inan example, a prediction image may be generated in a unit of a codingblock and a residual signal, a difference between an original image anda prediction image, may be transformed in a unit of a coding block. Togenerate a prediction image in a unit of a coding block, motioninformation may be determined based on a coding block or an intraprediction mode may be determined based on a coding block. Accordingly,a coding block may be encoded by using at least one of a skip mode,intra prediction or inter prediction.

Alternatively, a plurality of coding blocks generated by partitioning acoding block may be set to share at least one of motion information, amerge candidate, a reference sample, a reference sample line or an intraprediction mode. In an example, when a coding block is partitioned by atriple tree, partitions generated by partitioning the coding block mayshare at least one of motion information, a merge candidate, a referencesample, a reference sample line or an intra prediction mode according tothe size or shape of a coding block. Alternatively, only part of aplurality of coding blocks may be set to share the information andresidual coding blocks may be set not to share the information.

In another example, it is possible to use a prediction block or atransform block smaller than a coding block by partitioning a codingblock.

Hereinafter, a method of performing intra prediction for a coding block,or, a prediction block or a transform block generated by partitioning acoding block will be described in detail.

FIG. 9 is a diagram illustrating types of predefined intra predictionmodes for a device for encoding/decoding an image according to anembodiment of the present invention.

The device for encoding/decoding a video may perform intra predictionusing one of predefined intra prediction modes. The predefined intraprediction modes for intra prediction may include non-directionalprediction modes (e.g., a planar mode, a DC mode) and 33 directionalprediction modes.

Alternatively, more than 33 directional prediction modes may be definedin order to increase the accuracy of intra prediction. That is, Mextended directional prediction modes may be defined by furthersubdividing an angle of the directional prediction mode (M>33). Adirectional prediction mode different from the existing 33 directionalprediction modes may be derived based on at least one of the existing 33directional prediction modes.

Accordingly, a greater number of intra prediction modes than the 35intra prediction modes shown in FIG. 9 may be defined. If the number ofavailable intra prediction modes is more than 35 shown in FIG. 9 , itmay be referred to as an extended intra mode.

FIG. 10 is a diagram illustrating available intra prediction modes underan extended intra mode. Under the extended intra mode, the availableintra prediction modes may be configured with 2 non-directionalprediction modes and 65 extended directional prediction modes.

The number of available intra prediction modes may be set equally for aluma component and a chroma component. Alternatively, the number ofavailable intra prediction modes for each color component may bedifferent. For example, any one of 67 intra prediction modes may beselected and used for the luma component, and any one of 35 intraprediction modes may be selected and used for the chroma component.

Alternatively, the number of available intra prediction modes may bedifferent according to the color format. For example, under a 4:2:0format, 67 intra prediction modes may be set to be available for theluma component, and 35 intra prediction modes may be set to be availablefor the chroma component. Under a 4:4:4 format, 67 intra predictionmodes may be set to be available for both the luma component and thechroma component.

Alternatively, the number of available intra prediction modes may bedifferent according to a size and/or a shape of a block. Specifically,the number of available intra prediction modes may be determined as 35or 67 according to the size and/or shape of the PU, TU, or CU. Forexample, when the size of the CU, TU, or PU is less than 64×64, or whenthe CU, TU, or PU is an asymmetric partition, the number of availableintra prediction modes may be 35. On the other hand, when the size ofthe CU, TU, or PU is 64×64 or more, or when the CU, TU, or PU is asymmetric partition, the number of available intra prediction modes maybe set to 67.

Alternatively, for the Intra 2N×2N partition, the number of availabledirectional intra prediction modes may be set to 65. On the other hand,for Intra N×N partitions, the number of available directional intraprediction modes may be set to 33.

Whether the extended intra mode is applied may be determined based on atleast one of a size, a shape, or a color component of a block. In thiscase, information indicating the size or shape of the block to which theextended intra mode is applied may be signaled through a bitstream. Theinformation may be signaled at a sequence, a picture, or a slice level.Accordingly, the size of the block to which the extended intra mode isapplied may be different for each sequence, picture, or slice. Forexample, in a first slice, the extended intra mode may be set to beapplied to a block larger than 64×64 (e.g., CU, TU, or PU), and in asecond slice, the extended intra mode may be set to be applied to ablock larger than 32×32.

The information indicating the size of the block to which the extendedintra mode is applied may be obtained by subtracting a predeterminedvalue after taking a log value from a size of a reference block. Forexample, ‘log 2_extended_intra_mode_size_minus4’ obtained by subtractingan integer 4 from a value obtained by taking the log value from the sizeof the reference block may be encoded. For example, when the value oflog 2_extended_intra_mode_size_minus4 is 0, it indicates that theextended intra mode is applied to a block having a size of 16×16 or moreor a block having a size larger than 16×16, and when the value of log2_extended_intra_mode_size_minus4 is 1, it may indicate that theextended intra mode is applied to a block having a size of 32×32 ormore, or a block having a size larger than 32×32.

As described above, the number of available intra prediction modes maybe determined based on at least one of a chroma component, a colorformat, a size or a shape of a block. Intra prediction for a currentblock may be performed based on at least one of available intraprediction modes.

In addition, the number of intra prediction mode candidates (e.g., thenumber of MPMs) used for determining an intra prediction mode of acurrent block to be encoded/decoded may also be determined according toat least one of a color component, a color format, or a size or a shapeof a block. In addition, it is also possible to use a larger number ofintra prediction modes than shown in FIG. 8 . For example, by furthersubdividing the directional prediction modes shown in FIG. 8 , it isalso possible to use 129 directional prediction modes and 2non-directional prediction modes. Whether to use a larger number ofintra prediction modes than shown in FIG. 8 may be determined inconsideration of at least one of the color component, the color formatcomponent, the size or the shape of the block, as in the above-describedexample.

Assuming that the angle of the horizontal prediction mode is 0 degreeand the angle of the vertical prediction mode is 90 degrees, thedirectional prediction modes shown in FIGS. 9 and 10 have an anglebetween −45 degrees and 135 degrees. That is, in general, intraprediction based on the directional intra prediction mode within theangular range may be performed. However, when an angle formed by anobject existing between a current block and a neighboring block is outof the angle range, the accuracy of intra prediction may be degraded.Accordingly, when the current block is square, intra prediction isperformed using a directional prediction mode between −45 degrees and135 degrees, whereas when the current block is non-square, it may beallowed to perform intra prediction using an intra prediction mode notincluded in the angular range. A directional prediction mode outside therange of −45 degrees to 135 degrees may be referred to as a wide angleintra prediction mode. In addition, intra prediction based on the wideangle intra prediction mode may be referred to as wide angle intraprediction.

FIG. 11 is a diagram illustrating intra prediction modes including wideangle intra prediction modes. As in the example shown in FIG. 11 , wideangle intra prediction modes in the range of −45 degrees to −90 degrees(intra prediction mode indexes −1 to −14) or wide angle intra predictionmodes in the range of 135 degrees to 180 degrees (intra prediction modeindexes 67 to 80) may be defined.

A smaller number of wide angle intra prediction modes may be definedthan that shown, or a larger number of wide angle intra prediction modesmay be defined than that shown. As an example, only wide angle intraprediction modes between −45 degrees and −67 degrees and wide angleintra prediction modes between 135 degrees and 157 degrees may bedefined.

Alternatively, the range of available wide angle intra prediction modesmay be determined based on a size or a shape of the current block. Forexample, when the current block is in the form of N×2N or 2N×N, wideangle intra prediction modes between −45 degrees and −55 degrees or wideangle intra prediction modes between 135 degrees and 145 degrees may beused. On the other hand, when the current block is in the form of N×kNor kN×N (here, the k is an integer greater than or equal to 4), wideangle intra prediction modes between −45 degrees and −67 degrees or wideangle intra prediction modes between 135 degrees and 157 degrees may beused.

Wide angle intra prediction modes with an angle less than −45 degreesmay be available when the current block is non-square with a heightsmaller than a width, and wide angle intra prediction modes with anangle greater than 135 degrees may be available when the current blockis non-square with the width larger than the height.

FIG. 12 is a diagram illustrating an application aspect of a wide angleintra prediction mode according to a shape of a current block.

As in the example shown in FIG. 12 (a), when the current block has anon-square shape with a height greater than a width, intra predictionusing a wide angle intra prediction mode having an angle greater than135 degrees may be performed.

On the other hand, as in the example shown in FIG. 12 (b), when thecurrent block has a non-square shape with the width greater than theheight, intra prediction using a wide angle intra prediction mode havingan angle less than −45 degrees may be performed.

Whether to allow wide angle intra prediction may be determined based onpredetermined coding information. The coding information may include atleast one of the size, shape, or split type of the current block. As anexample, wide angle intra prediction may be allowed when the size of thecurrent block is larger than a threshold value or when the size of thecurrent block is smaller than the threshold value. The threshold valuemay represent a maximum size or minimum size for which wide angle intraprediction is allowed. The threshold value may be predefined by anencoder and a decoder. Alternatively, information for determining thethreshold value may be signaled through a bitstream.

As another example, wide angle intra prediction may be allowed when thesplit type of a higher node is a first type, and may not be allowed whenthe split type is a second. The first type includes at least one of aquad tree division, binary tree division, or triple tree division, andthe second type includes a division type other than the first type.

As another example, wide angle intra prediction may be allowed only whena ratio of the height and width of the current block is greater than orequal to a first threshold or less than or equal to a second threshold.The first threshold value and the second threshold value may represent amaximum size or a minimum size allowing wide angle intra prediction. Thefirst threshold value and the second threshold value may be predefinedby the encoder and the decoder. Alternatively, information fordetermining the first threshold value and the second threshold value maybe signaled through the bitstream.

As another example, information indicating whether wide angle intraprediction is allowed may be signaled through the bitstream.

Referring to the drawings to be described later, a method of determiningan intra prediction mode of a current block to be encoded/decoded and amethod of performing intra prediction using the determined intraprediction mode will be described with the drawings.

Referring to the drawings to be described later, a method of determiningan intra prediction mode of a current block to be encoded/decoded and amethod of performing intra prediction using the determined intraprediction mode will be described with the drawings.

FIG. 13 is a flowchart briefly illustrating an intra prediction methodaccording to an embodiment of the present invention.

First, a reference sample line index of a current block may bedetermined (S1110). The reference sample line index may be used todetermine a reference sample line used to perform intra prediction ofthe current block. At least one reference sample line indicated by thereference sample line index among the plurality of reference samplelines may be used to perform intra prediction of the current block.

FIG. 14 is a diagram illustrating reference sample line candidates.

The Nth reference sample line may include a top reference sample whose ycoordinate is smaller by N than the top-most row of the current blockand a left reference sample whose x coordinate is smaller by N than theleft-most column of the current block. Here, the Nth reference sampleline indicates a reference sample line having an index of N−1 in theexample shown in FIG. 14 . The Nth reference sample line may include thetop reference samples from P(−N, −N) to P(2W+N−1, −N) and the leftreference samples from P(−N, −N) to P(−N, 2H+N−1). For example, areference sample line 1 may include the top reference samples from P(−2,−2) to P(2W+1, −2) and the left reference samples from P(−2, −2) toP(−2, 2H+1).

The number of reference sample lines that can be used as referencesample line candidates may be 1, 2, 3, 4 or more. As an example, in theexample shown in FIG. 14 , a reference sample line 0, a reference sampleline 1, and a reference sample line 3 may be used as reference sampleline candidates.

The number of reference sample lines or the location of the referencesample lines that can be used as reference sample line candidates may bedetermined based on at least one of a size, a shape, an intra predictionmode, or a location of a current block. For example, when a currentblock is located adjacent to a boundary of a CTU or a boundary of atile, the number of reference sample line candidates may be 1 (e.g.,reference sample line 0). When the current block is not located adjacentto the boundary of the CTU or the boundary of the tile, the number ofreference sample line candidates may be 3 (e.g., reference sample line0, reference sample line 1, reference sample line 3). For example, whenan intra prediction mode of the current block is within a first range,reference sample line 0, reference sample line 1, and reference sampleline 3 may be used as reference sample line candidates. When the intraprediction mode of the current block is within a second range, referencesample line 0, reference sample line 2, and reference sample line 2 maybe used as reference sample line candidates.

Information specifying at least one of the reference sample linecandidates may be signaled through a bitstream. When the number ofavailable reference sample line candidates is 1, encoding of the indexinformation may be omitted. When the index information is not encoded,it may be considered that the reference sample line 0 adjacent to thecurrent block is selected.

Alternatively, at least one of reference sample line candidates may beselected based on at least one of a size, a shape, a location, or anintra prediction mode of the current block. For example, when at leastone of a width, a height, and a size of the current block is smallerthan a predefined value, the reference sample line 0 may be selected.For example, when the current block is located on a top boundary of aCTU or a tile, the reference sample line 0 may be selected.

Alternatively, a reference sample line may be selected based on whetherthe current block is divided into sub-blocks. For example, when thecurrent block is divided into sub-blocks, the reference sample line 0may be selected.

Alternatively, when the current block is divided into a plurality ofsub-blocks, a reference sample line may be determined for eachsub-block. Alternatively, all sub-blocks may be defined to have the samereference sample line index.

When the current block is divided into a plurality of sub-blocks, intraprediction may be performed in units of sub-blocks.

Multiple reference sample lines may be selected for a current block.Whether to perform intra prediction using a plurality of referencesample lines may be adaptively determined according to a size, a shape,or an intra prediction mode of the current block. For example, when theintra prediction mode of the current block is a non-directionalprediction mode or a predefined directional intra prediction mode,multiple reference sample lines may not be used. The predefineddirectional intra prediction mode may include at least one of a verticalintra prediction mode, a horizontal intra prediction mode, and adiagonal intra prediction mode.

The plurality of reference sample lines may include a reference sampleline selected by index information and a reference sample line obtainedby adding or subtracting a predefined value to the reference sample lineindex. Here, the predefined value may be 1 or 2.

Alternatively, a plurality of index information may be signaled througha bitstream. Each of the plurality of index information indicates adifferent reference sample line.

A prediction sample may be obtained based on at least one of a weightedsum operation, an average operation, a minimum value operation, or amaximum value operation of a plurality of reference samples. Here, areference sample line index including at least one of the plurality ofreference samples may be different from a reference sample line indexincluding the rest.

Next, an intra prediction mode of the current block may be determined(S1220).

In order to determine the intra prediction mode of the current block, aMost Probable Mode (MPM) candidate may be derived based on an intraprediction mode of a neighboring block adjacent to the current block.Here, the neighboring block may include at least one of a block adjacentto a top, bottom, left, right, or corner of the current block. Forexample, an MPM candidate may be derived based on the intra predictionmode of the top neighboring block and the intra prediction mode of theleft neighboring block. The top neighboring block may include a topneighboring sample at a predefined location having smaller y-coordinatevalue than a top-most row of the current block. The predefined positionmay be (0, −1), (W/2, −1), (W−1, −1) or (W, −1). (0, 0) indicates aposition of a top-left sample included in the current block, and Windicates the width of the current block. The left neighboring block mayinclude a left neighboring sample at a predefined position having asmaller x-coordinate value than a left-most column of the current block.The predefined position may be (−1, 0), (−1, H/2), (−1, H−1) or (−1, H).H represents the height of the current block. If the neighboring blockis encoded in inter prediction, an MPM candidate may be included usingan intra prediction mode of the neighboring block or an intra predictionmode of a collocated block of the current block.

The number of MPM (Most Probable Mode) candidates included in acandidate list may be 3, 4, 5, 6 or more. The maximum number of MPMcandidates may be a fixed value predetermined in an imageencoder/decoder. Alternatively, the maximum number of MPM candidates maybe determined based on an attribute of the current block. The attributemay include at least one of a location/size/shape of the current block,a number/type of intra prediction modes that the current block is ableto use, a color type of the current block (luma/chroma), a color formatof the current block, or whether the current block is divided into aplurality of sub-blocks. Alternatively, information indicating themaximum number of MPM candidates may be signaled through a bitstream.The information indicating the maximum number may be signaled in atleast one of a sequence level, a picture level, a slice level, or ablock level.

An intra prediction mode of a neighboring block, a directional intraprediction mode similar to a neighboring block, or a default mode may beset as the MPM candidate. The directional intra prediction mode similarto the neighboring block may be derived by adding or subtracting apredefined value to the intra prediction mode of the neighboring block.The predefined value may be an integer of 1, 2 or more. The predefinedvalue may be adaptively determined according to the number of availableintra prediction modes. For example, when the number of available intraprediction modes is 35, the predefined value may be set to 1, and whenthe number of available intra prediction modes is 67, the predefinedvalue may be set to 2. Furthermore, when the number of available intraprediction modes is 131, the predefined value may be set to 4. When bothan intra prediction mode of a first neighboring block and an intraprediction mode of a second neighboring block are directional predictionmodes, similar directional intra prediction mode may be derived based onthe maximum value of the intra prediction mode of the first neighboringblock and the intra prediction mode of the second neighboring block. Thedefault mode may include at least one of a DC mode, a planar mode, ahorizontal prediction mode, a vertical prediction mode, a top-rightdiagonal mode, a bottom-left diagonal mode, or an top-left diagonalmode. When the number of MPM candidates included in a MPM candidate listis smaller than the maximum number, a default mode different from thepreviously inserted MPM candidate in the MPM candidate list may beinserted into the MPM candidate list. A number, a type, or a priority ofthe default modes may be different according to at least one of areference sample line index of the current block, whether an intraprediction technique in units of sub-blocks is applied to the currentblock, or a partition type of the current block.

The MPM candidate index may be determined according to a predefinedorder. For example, when the intra prediction mode of the leftneighboring block and the intra prediction mode of the top neighboringblock are different, the intra prediction mode of the left neighboringblock may have an index value smaller than that of the top neighboringblock.

Alternatively, an MPM candidate index may be determined according to asize/type of the current block. For example, when the current block hasa non-square shape having a height greater than a width, the intraprediction mode of the top neighboring block may have an index valuesmaller than that of the left neighboring block. When the current blockhas a non-square shape having a width greater than a height, the intraprediction mode of the left neighboring block may have an index valuesmaller than that of the top neighboring block.

Alternatively, only N predefined intra prediction modes may be used asMPM candidates. When the intra prediction mode of the neighboring blockis different from the predefined N intra prediction modes, the intraprediction mode of the neighboring block is transformed into one of thepredefined N intra prediction modes, and the transformed intraprediction mode may be set as an MPM candidate. A predefined table maybe used for the transformation of the intra prediction mode, or ascaling operation based on a predetermined value may be used. Here, thepredefined table may define a mapping relationship between intraprediction modes.

For example, when a neighboring block is encoded in a non-extended intramode (i.e., available intra prediction modes are 35), and a currentblock is encoded in an extended intra mode (i.e., available intraprediction modes are 67), an intra prediction mode index of theneighboring block may be transformed into an intra prediction mode indexunder the extended intra mode. For example, when an intra predictionmode of a left neighboring block is 10 (horizontal mode), it may betransformed into index 18 corresponding to a horizontal mode under theextended intra mode.

Alternatively, when a neighboring block is encoded in an extended intramode and a current block is encoded in a non-extended intra mode, anintra prediction mode index of the neighboring block may be transformedinto an intra prediction mode index under the non-extended intra mode.For example, when the intra prediction mode index of the top neighboringblock is 50 (vertical mode), it may be transformed into index 26corresponding to a vertical mode under the non-extended intra mode.

When the reference sample line index selected through the step S1110 isgreater than or equal to a predefined value, the candidate list may beset not to include the DC mode and/or the planner mode. The predefinedvalue may be an integer of 1 or more.

When the current block is divided into a plurality of sub-blocks, acurrent candidate list may be set not to include the DC mode and/or theplanner mode. Also, a default mode may be included in the candidatelist. In this case, a number or a type of default modes may be differentaccording to a partition type of the current block.

Information indicating whether the same MPM candidate as the intraprediction mode of the current block is included in the candidate listmay be signaled through the bitstream. For example, an MPM flag may besignaled through the bitstream. When a value of the MPM flag is 0, itindicates that the same MPM candidate as the intra prediction mode ofthe current block is not included in the candidate list. When the valueof the MPM flag is 1, it indicates that the same MPM candidate as theintra prediction mode of the current block is included in the candidatelist.

When the MPM flag indicates that the same MPM candidate as the intraprediction mode of the current block exists, index informationspecifying one of the MPM candidates included in the candidate list maybe signaled through a bitstream. The MPM candidate specified by theindex information may be set as the intra prediction mode of the currentblock. When encoding/signaling of the MPM flag is omitted, it may bedetermined that an MPM candidate identical to the intra prediction modeof the current block is included in the candidate list.

On the other hand, when the MPM flag indicates that the same MPMcandidate as an intra prediction mode of the current block does notexist, remaining mode information may be signaled through the bitstream.The remaining mode information is used to specify any one of remainingintra prediction modes excluding MPM candidates included in thecandidate list. Using the remaining mode information, the intraprediction mode of the current block may be determined. When the MPMflag indicates that the same MPM candidate as the intra prediction modeof the current block does not exist, the MPM candidates may berearranged in ascending order. Thereafter, a mode value indicated by theremaining mode information may be sequentially compared with therearranged MPM candidates to derive the intra prediction mode of thecurrent block. For example, when the mode value indicated by theremaining mode information is less than or equal to the rearranged MPMcandidate, 1 may be added to the mode value. If there is no MPMcandidate less than an updated mode value, the updated mode value may bedetermined as the intra prediction mode of the current block.

When the reference sample line index selected through the step S1110 isgreater than or equal to a predefined value, encoding of the MPM flagmay be omitted. Accordingly, when the reference sample line index isgreater than or equal to the predefined value, the intra prediction modeof the current block may be set as an MPM candidate indicated by theindex information.

As described above, when the reference sample line index is greater thanor equal to a predefined value, a candidate list may be set not toinclude the DC mode and/or the planner mode. Accordingly, when thereference sample line index is greater than or equal to the predefinedvalue, the DC mode and/or the planner mode may not be available for thecurrent block.

Information indicating whether the intra prediction mode of the currentblock is a default mode may be signaled through a bitstream. The defaultmode may include at least one of a DC, a planar, a horizontal mode, avertical mode, or a diagonal mode. For example, a default mode flagindicating whether an intra prediction mode of a current block is thesame as the default mode may be signaled through the bitstream. Thedefault mode flag may include at least one of a flag indicating whetherthe intra prediction mode of the current block is the planar mode, aflag indicating whether the intra prediction mode of the current blockis the DC mode, a flag indicating whether the intra prediction mode ofthe current block is the vertical mode, a flag indicating whether theintra prediction mode of the current block is the horizontal mode, or aflag indicating whether the intra prediction mode of the current blockis the diagonal mode.

For example, is_planar_not_flag may be signaled through the bitstream.When the value of the flag is 0, it indicates that the intra predictionmode of the current block is the planar mode. When the value of the flagis 1, it indicates that the intra prediction mode of the current blockis not the planar mode.

A default mode flag may be signaled when an MPM flag indicates that thesame MPM candidate as the intra prediction mode of the current blockexists. When the default mode flag indicates that the intra predictionmode of the current block is not the default mode, an MPM candidatespecified by index information may be set as the intra prediction modeof the current block.

When an intra prediction mode index of a current block is less than orequal to a first threshold value, and the current block is a non-squareshape having a width greater than a height, the intra prediction modemay be modified to a wide angle intra prediction mode. Here, the firstthreshold value may be determined based on the shape of the currentblock. For example, the first threshold value may be derived by adding aratio of the width and height to a predefined index. Accordingly, as theratio of the width and height of the current block increases, the numberof available wide angle intra prediction modes may increase. Thepredefined index may be 8. When the above condition is satisfied, theintra prediction mode may be modified into a wide angle intra predictionmode by adding a predefined value to the intra prediction mode index.The modified wide angle intra prediction mode may have an angle greaterthan 135 degrees. The predefined value may be the number of directionalprediction modes excluding wide angle intra prediction modes. Forexample, when the example shown in FIG. 9 is followed, the predefinedvalue may be set to 33, and when the example shown in FIG. 10 isfollowed, the predefined value may be set to 65.

When the intra prediction mode index of the current block is greaterthan or equal to a second threshold value, and the current block has anon-square shape having a height greater than a width, the intraprediction mode may be modified to a wide angle intra prediction mode.Here, the second threshold value may be determined based on the shape ofthe current block. For example, the second threshold value may bederived by subtracting a ratio of the height and width from a predefinedindex. Accordingly, as the ratio of height and width of the currentblock increases, the number of available wide angle intra predictionmodes may increase. The predefined index may be 60. When the abovecondition is satisfied, the intra prediction mode may be modified into awide angle intra prediction mode by subtracting a predefined value fromthe intra prediction mode index. The modified wide angle intraprediction mode may have an angle less than −45 degrees. The predefinedvalue may be the number of intra prediction modes excluding the wideangle intra prediction mode. For example, when the example shown in FIG.9 is followed, the predefined value may be set to 35, and when theexample shown in FIG. 10 is followed, the predefined value may be set to67.

When the current block is divided into a plurality of sub-blocks, theplurality of sub-blocks may share an intra prediction mode of a currentblock. Alternatively, an intra prediction mode may be determined foreach sub-block. For example, the information and/or the remaining modemay be encoded/decoded for each sub-block. Alternatively, informationindicating whether the intra prediction mode of the sub-block is thesame as the sub-block on which the previous encoding/decoding has beencompleted may be signaled through the bitstream. Alternatively, theintra prediction mode of the current sub-block may be derived byadding/subtracting an offset to the intra prediction mode of thesub-block on which the previous encoding/decoding has been completed.

When the current block is divided into a plurality of sub-blocks,encoding of the MPM flag may be omitted. Accordingly, when the currentblock is divided into a plurality of sub-blocks, the intra predictionmode of the current block may be set as an MPM candidate indicated bythe index information.

The plurality of sub-blocks may share the intra prediction mode of thecurrent block.

Intra prediction modes of each of the luma component and the chromacomponent may be independently determined. Alternatively, the intraprediction mode of the chroma component may be determined depending onthe intra prediction mode of the luma component.

Specifically, the intra prediction mode of the chroma component may bedetermined based on the intra prediction mode of the luma component asshown in the following Table 1.

TABLE 1 IntraPredModeY[xCb][yCb] Intra_chroma_pred_mode[xCb][yCb] 0 2610 1 X(0 <= X <= 34) 0 34 0 0 0 0 1 26 34 26 26 26 2 10 10 34 10 10 3 11 1 34 1 4 0 26 10 1 X

In Table 1, intra_chroma_pred_mode means information signaled to specifythe intra prediction mode of the chroma component, and IntraPredModeYindicates the intra prediction mode of the luma component.

Next, a reference sample for the current block may be derived (S1130).For example, when the N-th reference sample line is selected throughstep S1110, the top reference samples from P(−N, −N) to P(2W+N−1, −N)and the left reference sample from P(−N, −N) to P(−N, 2H+N−1) may bederived.

The reference sample may be derived from a reconstructed sample that hasbeen encoded/decoded before the current block. The reconstructed samplemay mean a state before the in-loop filter is applied or a state afterthe in-loop filter is applied.

A predetermined intra filter may be applied to the reference samples.Filtering the reference samples using an intra filter may be referred toas reference sample smoothing. The intra filter may include at least oneof a first intra filter applied in a horizontal direction or a secondintra filter applied in a vertical direction. One of the first intrafilter or the second intra filter may be selectively applied accordingto a position of the reference sample. Alternatively, two intra filtersmay be repeatedly applied to one reference sample. At least one offilter coefficient among the first intra filter o the second intrafilter may be (1, 2, 1), but is not limited thereto.

The filtering may be adaptively performed based on at least one of theintra prediction mode of the current block or a size of the transformblock for the current block. For example, when the intra prediction modeof the current block is the DC mode, the vertical mode, or thehorizontal mode, filtering may not be performed. When the size of thetransform block is N×M, filtering may not be performed. Here, N and Mmay be the same values or different values, or may be values of 4, 8,16, or more. For example, if the size of the transform block is 4×4,filtering may not be performed. Alternatively, whether to performfiltering may be determined based on the result of a comparison of apre-defined threshold and the difference between the intra predictionmode of the current block and the vertical mode (or the horizontalmode). For example, when the difference between the intra predictionmode of the current block and the vertical mode is greater than thethreshold, filtering may be performed. The threshold may be defined foreach size of the transform block as shown in Table 2.

TABLE 2 8 × 8 transform 16 × 16 transform 32 × 32 transform Threshold 71 0

The intra filter may be determined as one of a plurality of intra filtercandidates pre-defined in the device for encoding/decoding a video. Tothis end, a separate index specifying an intra filter of the currentblock among a plurality of intra filter candidates may be signaled.Alternatively, the intra filter may be determined based on at least oneof a size/shape of the current block, a size/shape of the transformblock, the information about the filter strength, or the variation ofsurrounding samples.

Next, intra prediction may be performed using an intra prediction modeof the current block and a reference sample (S1140).

A prediction sample may be obtained by using the intra prediction modeand the reference sample of the current block. When multiple referencesample lines are selected, prediction samples may be obtained based on aweighted sum operation or an average operation of reference samplesbelonging to different reference sample lines. As an example, aprediction sample may be derived based on a weighted sum operation of afirst reference sample belonging to a first reference sample line and asecond reference sample belonging to a second reference sample line. Inthis case, the weights applied to the first reference sample and thesecond reference sample may have the same value. Alternatively, theweight applied to each reference sample may be determined based on adistance between the prediction target sample and the reference sample.For example, among the first reference sample and the second referencesample, a weight applied to a reference sample having a close distanceto the prediction target sample may have a greater value than a weightapplied to other reference sample.

However, in the case of intra prediction, a boundary sample of theneighboring block may be used, and thus quality of the predictionpicture may be decreased. Therefore, a correction process may beperformed on the prediction sample generated through the above-describedprediction process, and will be described in detail with reference toFIG. 15 . However, the correction process is not limited to beingapplied only to the intra prediction sample, and may be applied to aninter prediction sample or the reconstructed sample.

FIG. 15 is a diagram illustrating a method of correcting a predictionsample of a current block based on differential information ofneighboring samples according to an embodiment of the present invention.

The prediction sample of the current block may be corrected based on thedifferential information of a plurality of neighboring samples for thecurrent block. The correction may be performed on all prediction samplesin the current block, or may be performed on prediction samples inpredetermined partial regions. The partial regions may be one row/columnor a plurality of rows/columns, and these may be preset regions forcorrection in the device for encoding/decoding a video. For example,correction may be performed on a one row/column located at a boundary ofthe current block or may be performed on a plurality of rows/columnsfrom the boundary of the current block. Alternatively, the partialregions may be variably determined based on at least one of a size/shapeof the current block or an intra prediction mode.

The neighboring samples may belong to the neighboring blocks positionedat the top, the left, and the top-left corner of the current block. Thenumber of neighboring samples used for correction may be two, three,four, or more. The positions of the neighboring samples may be variablydetermined depending on the position of the prediction sample which isthe correction target in the current block. Alternatively, some of theneighboring samples may have fixed positions regardless of the positionof the prediction sample which is the correction target, and theremaining neighboring samples may have variable positions depending onthe position of the prediction sample which is the correction target.

The differential information of the neighboring samples may mean adifferential sample between the neighboring samples, or may mean a valueobtained by scaling the differential sample by a predetermined constantvalue (e.g., one, two, three, or the like.). Here, the predeterminedconstant value may be determined considering the position of theprediction sample which is the correction target, the position of acolumn or a row including the prediction sample which is the correctiontarget, the position of the prediction sample within the column, therow, or the like.

For example, when the intra prediction mode of the current block is thevertical mode, differential samples between the top-left neighboringsample p(−1, −1) and neighboring samples p (−1, y) adjacent to the leftboundary of the current block may be used to obtain the final predictionsample as shown in Equation 1.

P′(0,y)=P(0,y)+((p(−1,y)−p(−1,−1))>>1 for y=0 . . . N−1  [Equation 1]

For example, when the intra prediction mode of the current block is thehorizontal mode, differential samples between the top-left neighboringsample p(−1, −1) and neighboring samples p(x, −1) adjacent to the topboundary of the current block may be used to obtain the final predictionsample as shown in Equation 1.

P′(x,0)=p(x,0)+((p(x,−1)−p(−1,−1))>>1 for x=0 . . . N−1  [Equation 2]

For example, when the intra prediction mode of the current block is thevertical mode, differential samples between the top-left neighboringsample p(−1, −1) and neighboring samples p (−1, y) adjacent to the leftboundary of the current block may be used to obtain the final predictionsample as shown in Equation 2. Here, the differential sample may beadded to the prediction sample, or the differential sample may be scaledby a predetermined constant value, and then added to the predictionsample. The predetermined constant value used in scaling may bedetermined differently depending on the column and/or row. For example,the prediction sample may be corrected as shown in Equation 3 andEquation 4.

P′(0,y)=P(0,y)+((p(−1,y)−p(−1,−1))>>1 for y=0 . . . N−1  [Equation 3]

P′(1,y)=P(1,y)+((p(−1,y)−p(−1,−1))>>2 for y=0 . . . N−1  [Equation 4]

For example, when the intra prediction mode of the current block is thehorizontal mode, differential samples between the top-left neighboringsample p(−1, −1) and neighboring samples p(x, −1) adjacent to the leftboundary of the current block may be used to obtain the final predictionsample. This is as described above in the horizontal mode. For example,the prediction samples may be corrected as in Equations 5 and 6 below.

F(x,0)=p(x,0)+((p(x,−1)−p(−1,−1))>>1 for x=0 . . . N−1  [Equation 5]

P′(x,1)=p(x,1)+((p(x,−1)−p(−1,−1))>>2 for x=0 . . . N−1  [Equation 6]

When an intra prediction mode of a current block is a directionalprediction mode, intra prediction of the current block may be performedbased on the directionality of the directional prediction mode. Forexample, Table 3 shows an intra direction parameter intraPredAng fromMode 2 to Mode 34, which is the directional intra prediction modeillustrated in FIG. 9 .

TABLE 3 predModeIntra 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 intraPred —32 26 21 17 13 9 5 2 0 −2 −5 −9 −13 −17 −21 Ang predModeIntra 18 19 2021 22 23 24 25 26 27 28 29 30 31 32 33 intraPred −32 −26 −21 −17 −13 −9−5 −2 0 2 5 9 13 17 21 26 Ang

In Table 3, 33 directional intra prediction modes have been described byway of example, but more or fewer directional intra prediction modes maybe defined. An intra direction parameter for a current block may bedetermined based on a lookup table that defines a mapping relationshipbetween a directional intra prediction mode and an intra directionparameter. Alternatively, the intra direction parameter for the currentblock may be determined based on the information signaled through thebitstream.

Intra prediction of the current block may be performed using at leastone of the left reference sample or the top reference sample, dependingon the directionality of the directional intra prediction mode. Here,the top reference sample may be a reference sample (e.g., (−1, −1) to(2W−1, −1)) having a y-axis coordinate smaller than the predictiontarget sample (x, 0) included in the top row in the current block, andthe left reference sample may be a reference sample (e.g., (−1, −1) to(−1, 2H−1)) having x-axis coordinates smaller than the prediction targetsample (0, y) included in the leftmost column in the current block.

Depending on a directionality of an intra prediction mode, referencesamples of the current block may be arranged in one dimension.Specifically, when both the top reference sample and the left referencesample should be used for intra prediction of the current block, it isassumed that they are arranged in a line along the vertical orhorizontal direction, and reference samples of each prediction targetsample may be selected.

For example, in the case where the intra direction parameter is negative(e.g., the intra prediction mode corresponding to Mode 11 to Mode 25 inTable 3), the top reference samples and the left reference samples maybe rearranged along the horizontal or vertical direction to form aone-dimensional reference sample group P_ref_1D.

FIGS. 16 and 17 are a diagram illustrating a one-dimensional referencesample group in which reference samples are rearranged in a line.

Whether to rearrange the reference samples in the vertical direction orin the horizontal direction may be determined according to adirectionality of an intra prediction mode. For example, when the intraprediction mode faces to the left (e.g., the intra prediction mode indexis between 11 and 18 in the example shown in FIG. 9 ), as in an exampleshown in FIG. 16 , the top reference samples of a current block can berotated counterclockwise to generate a one-dimensional reference samplegroup in which the left reference samples and the top reference samplesare arranged in the vertical direction.

On the other hand, when the intra prediction mode faces to the top(e.g., the intra prediction mode index is between 19 and 25 in theexample shown in FIG. 9 ), as in an example shown in FIG. 17 , the leftreference samples of the current block may be rotated clockwise togenerate a one-dimensional reference sample group in which the leftreference samples and the top reference samples are arranged in thehorizontal direction.

If the intra direction parameter of the current block is not negative,intra prediction for the current block may be performed using only theleft reference samples or the top reference samples. Accordingly, forthe intra prediction modes in which the intra direction parameter is notnegative, the one-dimensional reference sample group may be constructedusing only the left reference sample or the top reference samples.

Based on the intra direction parameter, a reference sample determinationindex iIdx for specifying at least one reference sample used to predictthe prediction target sample may be derived. In addition, a weightrelated parameter i_(fact) used to determine a weight applied to eachreference sample based on the intra direction parameter may be derived.For example, Equations 7 illustrate examples of deriving referencesample determination index and weight related parameter.

iIdx−(y+1)*(P _(ang)/32)

ifact[(y+1)*P _(ang)]31  [Equation 7]

As shown in Equation 7, iIdx and i_(fact) are variably determinedaccording to the slope of the directional intra prediction mode. In thiscase, the reference sample specified by iIdx may correspond to aninteger pel.

Based on a reference sample determination index, at least one referencesample may be specified for each prediction sample. For example, theposition of the reference sample in the one-dimensional reference samplegroup for predicting the prediction target sample in the current blockmay be specified based on the reference sample determination index.Based on the reference sample at the specified position, a predictionimage (i.e., a prediction sample) for the prediction target sample maybe generated.

A prediction image for a prediction target sample may be generated basedon one or a plurality of reference samples according to an intraprediction mode of a current block.

For example, when a virtual angular line extending from the predictiontarget sample passes an integer pel position (i.e., a reference sampleat an integer position) in a one-dimensional reference sample group, aprediction image for the prediction target sample may be generated bycopying the reference sample at the integer pel position or scaling thereference sample in consideration of a location between the referencesample at the integer pel position and the prediction target sample. Thevirtual angle line may mean a line extended in one direction or bothdirections along an angle of the intra prediction mode of the currentblock or a slope of the intra prediction mode. As an example, thefollowing Equation 8 shows an example of generating the prediction imageP(x, y) for the prediction target sample at position (x, y) by copying areference sample P_ref_1D(x+iIdx+1) specified by the intra predictionmode of the current block.

P(x,y)P_ref_1D(x+iIdx+1)  [Equation 8]

On the other hand, when the virtual angle line extended from theprediction target sample does not pass through the integer pel position,the prediction image for the prediction target sample may be obtainedusing a plurality of reference samples. The prediction image for theprediction target sample may be generated by linearly interpolating areference sample adjacent to a position where the virtual angle linepasses and at least one neighboring reference sample adjacent to thereference sample. Alternatively, the prediction image for the predictiontarget sample may be obtained by performing a tap filter-basedinterpolation on the reference sample and the at least one neighboringreference sample. The number of taps of the interpolation filter may bea natural number of 2 or more. Specifically, depending on the number ofreference samples to be interpolated, the number of taps of the tapfilter may be an integer of 2, 3, 4, 5, 6 or more.

As an example, when a virtual angle line extended from the predictiontarget sample passes between two integer pel positions, the predictionimage for the prediction target sample may be generated by using atleast one of the reference samples at both positions where the virtualangle line passes or the reference samples at the two integer pelpositions, and at least one neighboring reference sample. Here, theneighboring reference sample may include at least one of referencesamples adjacent to the left/right or top/bottom of the referencesample. As an example, Equation 9 below shows an example of generatingthe prediction sample P(x, y) for the prediction target sample byinterpolating two or more reference samples.

P(x,y)=(32−i _(fact))/32*P_ref_1D(x+iIdx+1)+i_(fact)/32*P_ref_1D(x+Idx+2)  [Equation 9]

A coefficient of an interpolation filter may be determined based on aweight related parameter ifact. As an example, the coefficient of theinterpolation filter may be determined based on the distance between thefractional pel and the integer pel (i.e., the integer position of eachreference sample) located on an angular line.

The following Equation 10 illustrates a case where a tap number of a tapfilter is 4.

P(x,y)−f(0)*P_ref_1D(x+iIdx−1)+f(1)*P_ref_1D(x+iIdx)+f(2)*P_ref_1D(x+iIdx+1)+f(3)*P_ref_1D(x+iIdx−2)  [Equation10]

As in the example shown in Equation 10, the prediction image for theprediction target sample may be obtained by interpolating a plurality ofconsecutive reference samples. In this case, when at least one of the Nconsecutive reference samples is not included in the one-dimensionalreference sample group, a value of the reference sample may be replacedwith a predefined value or a value of a neighboring reference sample. Asan example, when the sample at the position (x+iIdx−1) is not includedin the one-dimensional reference sample group, the reference samplevalue at the position may be replaced with a predefined value or a valueof the adjacent reference sample (e.g., P_ref_1D(x+iIdx)).Alternatively, when the sample at the position (x+iIdx+2) is notincluded in the one-dimensional reference sample group, the referencesample value at the position may be replaced with a predefined value, apre-calculated value or a value of the adjacent reference sample (e.g.,P_ref(x+iIdx+1)). Here, the predefined value may be an integer including0. The pre-calculated value may be a value determined by a bit depth.Alternatively, the predefined value may be calculated based on anaverage value, a minimum value, or a maximum value of at least onereference sample.

The multi-tap filter may have a straight shape. As an example, astraight shape multi-tap filter using a plurality of consecutivereference samples in a horizontal or vertical direction may be applied.Alternatively, the multi-tap filter may have a polygonal shape such as asquare or cross shape. As an example, a cross shaped multi-tap filterusing a reference sample and reference samples adjacent to all foursides of the reference sample may be used. The shape of the multi-tapfilter may be variably determined based on a size, shape, or intraprediction mode of the current block.

As shown in Equations 8 to 10, generating a prediction sample byinterpolating a reference sample using the directionality of intraprediction may be referred to as an intra prediction sampleinterpolation technique.

In using the intra prediction sample interpolation technique, a largetap number of tap filters does not necessarily guarantee an improvementin prediction accuracy. For example, when a size of the current block isan asymmetric coding unit that one of the height or width issignificantly larger than the other, such as 2×16, or a block of smallsize, such as 4×4, using a tap filter of 4 taps or more may result inexcessive smoothing of the prediction image. Accordingly, a type of tapfilter may be adaptively determined according to a size, shape, or intraprediction mode of the current block. Here, a type of tap filter may bedefined by at least one of the number of taps, filter coefficients,filter strength (strong/weak), filtering direction or filter type. Thenumber of filter taps or the filter coefficient may be variablydetermined according to the filter strength. In addition, depending onthe type of the tap filter, an application direction of the tap filter,such as horizontal interpolation, vertical interpolation, or horizontaland vertical interpolation, may be determined. The application directionof the tap filter may be variably set in units of lines (rows orcolumns) or samples in the current block.

Specifically, the type of tap filter to be used may be determined basedon the width or height of a current block. As an example, when at leastone of the width or height of the current block is smaller than apredefined value, an intra prediction sample interpolation technique maybe performed by using a 2-tap filter instead of a 4-tap filter. On theother hand, when both the width and height of the current block isgreater than or equal to the predetermined value, the intra predictionsample interpolation technique may be performed using the 4-tap filter.Here, the predefined value may represent a value such as 4, 8, or 16.

Alternatively, the type of tap filter to be used may be determinedaccording to whether the width and height of the current block are thesame. For example, when the width and height of the current block aredifferent values, the intra prediction sample interpolation techniquemay be performed using the 2-tap filter instead of the 4-tap filter. Onthe other hand, when the width and height of the current block have thesame value, the intra prediction sample interpolation technique may beperformed using the 4-tap filter.

Alternatively, the type of tap filter to be used may be determinedaccording to the ratio of the width and the height of the current block.For example, when the ratio of the width (w) to the height (h) of thecurrent block (i.e., w/h or h/w) is less than a predefined threshold,the intra prediction sample interpolation technique may be performedusing the 2-tap filter instead of the 4-tap filter On the other hand,when the ratio of the width and height of the current block is greaterthan or equal to the predefined threshold value, the intra predictionsample interpolation technique may be performed using the 4-tap filter.

Alternatively, the type of tap filter may be determined according to anintra prediction mode, a shape, or a size of the current block. Forexample, when the current block is a 2×16 type coding unit and the intraprediction mode of the current block is an intra prediction modebelonging to the horizontal range, the intra prediction sampleinterpolation technique may be performed using a tap filter having a tapnumber n. On the other hand, when the current block is a 2×16 typecoding unit and the intra prediction mode of the current block is anintra prediction mode belonging to the vertical direction range, theintra prediction sample interpolation technique may be performed using atap filter having a tap number m.

On the other hand, when the current block is a 16×2 type coding unit andthe intra prediction mode of the current block is the intra predictionmode belonging to the horizontal direction range, the intra predictionsample interpolation technique may be performed using a tap filterhaving a tap number n. On the other hand, when the current block is a16×2 type coding unit and the intra prediction mode of the current blockis the intra prediction mode belonging to the vertical direction range,the intra prediction sample interpolation technique may be performedusing a tap filter having a tap number m.

Here, the horizontal range may indicate a predetermined range includingthe intra prediction mode in the horizontal direction, and the verticalrange may indicate a predetermined range including the intra predictionmode in the vertical direction. For example, based on 35 intraprediction modes, the horizontal direction range may indicate an intraprediction mode between modes 11 and 18, and the vertical directionrange may indicate an intra prediction mode between modes 19 and 27.

In addition, n and m are constants greater than 0, and n and m may havedifferent values. Alternatively, n and m may be set to have the samevalue, but at least one of filter coefficients or filter intensities ofthe n tap filter and the m tap filter may be set differently.

When intra prediction is performed based on the directional predictionmode or the DC mode, there is a concern that picture quality maydeteriorate at a block boundary. On the other hand, when intraprediction is performed based on the planar mode, there is an advantagein that image quality deterioration at the block boundary is relativelysmall compared to the prediction modes.

In intra prediction based on the planar mode, a prediction image may beobtained by weighted prediction of a first prediction image in ahorizontal direction and a second prediction image in a verticaldirection.

Herein, the first prediction image may be generated based on referencesamples placed in a horizontal direction of a prediction target sample.As an example, the first prediction image may be generated based on aweighted sum of reference samples placed in a horizontal direction ofthe prediction target sample. In this case, a weight applied to eachreference sample may be determined based on at least of a distance tothe prediction target sample or a size of the current block. Referencesamples placed in a horizontal direction of the prediction target samplemay comprise a left reference sample having the same y coordinate as theprediction target sample and a right reference sample having the same ycoordinate as the prediction target sample. The right reference samplemay be derived from a top reference sample of the current block. Forexample, the right reference sample may be derived by copying a value ofthe top reference sample placed on the same vertical line as the rightreference sample. Alternatively, the right reference sample may bederived as a weighted sum or an average value of a plurality of topreference samples. Herein, the top reference sample placed on the samevertical line as the right reference sample may include a referencesample adjacent to a top-right corner of the current block. Thereference sample adjacent to the top-right corner may have the same xcoordinate as the right reference sample. Alternatively, depending on ashape, a size of the current block, or a position of the predictiontarget sample, a position of the top reference sample used to derive theright reference sample may be variably determined.

A second prediction image may be generated based on reference samplesplaced in a vertical direction of a prediction target sample. As anexample, the second prediction image may be generated based on aweighted sum of reference samples placed in the vertical direction ofthe prediction target sample. In this case, a weight applied to eachreference sample may be determined in consideration of a distance to theprediction target sample or a size of the current block. Referencesamples placed in the vertical direction of the prediction target samplemay comprise a top reference sample on the same vertical line as theprediction target sample having the same x coordinate as the predictiontarget sample and a bottom reference sample on the same vertical line asthe prediction target sample having the same x coordinate as theprediction target sample. The bottom reference sample may be derivedfrom a left reference sample of the current block. For example, thebottom reference sample may be derived by copying a value of the leftreference sample placed on the same horizontal line as the bottomreference sample. Alternatively, the bottom reference sample may bederived as a weighted sum or an average value of a plurality of leftreference samples. Herein, the left reference sample placed on the samehorizontal line as the bottom reference sample may include a referencesample adjacent to a bottom-left corner of the current block. Thereference sample adjacent to the bottom-left corner may have the same ycoordinate as the bottom reference sample). Alternatively, depending ona shape, a size of the current block, or a position of the predictiontarget sample, a position of the top reference sample used to derive thebottom reference sample may be variably determined.

Alternatively, at least one of the right reference sample and the bottomreference sample may be derived using both the left reference sample andthe top reference sample.

As an example, a weighted sum or an average of the top reference sampleand the left reference sample of the current block may be determined asa value of at least one of the right reference sample or the bottomreference sample.

Alternatively, the bottom-left reference sample and the top-rightreference sample may be used to derive a bottom-right reference sampleadjacent to a bottom-right corner of the current block, and then thederived bottom-right reference sample may be used to derive the rightreference sample and the bottom reference sample. The bottom-rightreference sample may be derived based on a weighted sum or an average ofthe top-right reference sample and the left reference sample of thecurrent block. In this case, weights applied to the top-right referencesample and the left reference sample may have the same value or may bedetermined based on a width/height of the current block.

Once the bottom-right reference sample is determined, the rightreference sample may be derived by interpolating the bottom-rightreference sample and the top-right reference sample, and the bottomreference sample may be derived by interpolating the bottom-rightreference sample and the bottom-left reference sample. In this case,coefficients of an interpolation filter may be determined based on asize of the current block, a shape of the current block, a distance tothe bottom-right reference sample, a distance to the top-right referencesample, or a distance to the bottom-left reference sample.

In order to derive the right reference sample or the left referencesample, a reference sample of a fixed position may be used, or areference sample that is adaptively selected according to a position ofa prediction target sample may be used. For example, the right referencesample may be derived by using the top-right reference sampleirrespective of the position of the prediction target sample, or may bederived by using a left reference sample selected according to theposition of the prediction target sample (e.g., reference sample havingthe same y-axis coordinate as the prediction target sample) or a topreference sample selected according to the position of the predictiontarget sample (e.g., reference sample having the same x-axis coordinateas the prediction target sample). Alternatively, the bottom referencesample may be derived using the bottom-left reference sample regardlessof the position of the prediction target sample, or may be derived usinga left reference sample selected according to the position of theprediction target sample(e.g., reference sample having the same y-axiscoordinate as the prediction target sample) or a top reference sampleselected according to the position of the prediction target sample(e.g., reference sample having the same x-axis coordinate as theprediction target sample).

FIG. 18 is a diagram illustrating an example of deriving a rightreference sample or a bottom reference sample using a plurality ofreference samples. Assume that the current block is a block having asize of W×H.

Referring to FIG. 18 (a), first, based on a weighted sum or an averagevalue of a top-right reference sample P(W, −1) and a bottom-left sampleP(−1, H) of the current block, a bottom-right reference samples P(W, H)may be generated. In this case, weights applied to the top-rightreference sample and the left reference sample may be set equally ordetermined based on a width W and a height H of the current block. Forexample, when the current block is non-square, a weight applied to thetop-right reference sample may be determined as W/(W+H), and a weightapplied to the bottom-left reference sample may be determined asH/(W+H).

Furthermore, a right reference sample P(W, y) for a prediction targetsample (x, y) may be generated based on the bottom-right referencesample P(W, H) and the top-right reference sample P(W, −1). For example,the right prediction sample P(W, y) may be calculated as a weighted sumor an average value of the bottom-right reference sample P(W, H) and thetop-right reference sample P(W, −1). In addition, a bottom referencesample P(x, H) for the prediction target sample (x, y) may be generatedbased on the bottom-right reference sample P(W, H) and the bottom-leftreference sample P(−1, H). For example, the bottom reference sample P(x,H) may be calculated as a weighted sum or an average value of thebottom-right reference sample P(W, H) and the left reference sampleP(−1, H).

As shown in FIG. 18 (b), when the right reference sample and the bottomreference sample are generated, a first prediction sample Ph(x, y) and asecond prediction sample Pv(x, y) of the prediction target sample may begenerated by using the generated reference samples. In this case, thefirst prediction sample Ph(x, y) may be generated based on a weightedsum of the left reference sample P(−1, y) and the right reference sampleP(W, y), and the second prediction sample Pv(x, y) may be generatedbased on a weighted sum of the top reference sample P(x, −1) and thebottom reference sample P(x, H).

FIGS. 19 and 20 are diagrams for explaining determining a rightreference sample and a bottom reference sample for a non-square blockaccording to an embodiment of the present invention.

As in an example shown in FIG. 19 , when the current block is anon-square block of (N/2)×N, a right reference sample may be derivedbased on a top-right reference sample P(N/2, −1), and a bottom referencesample may be derived based on a bottom-left reference sample P(−1, N).

Alternatively, the right reference sample or the bottom reference samplemay be derived based on at least one of a weighted sum, an average, aminimum, or a maximum value of the top-right reference sample P(N/2, −1)and the bottom-left reference sample P(−1, N). For example, the rightreference sample may be derived based on a weighted sum or an average ofP(N/2, −1) and P(−1, N), or may be derived by interpolating abottom-right reference sample and the top-right reference sample. Afterderiving the bottom-right reference sample P(N/2, N) based on P(N/2, −1)and P(−1, N). Alternatively, the bottom reference sample may be derivedbased on a weighted sum or an average of P(N/2, −1) and P(−1, N), or maybe derived by interpolating the bottom-right reference sample and thebottom-left reference sample after deriving the bottom-right referencesample P(N/2, N) based on P(N/2, −1) and P(−1, N).

On the other hand, as in an example shown in FIG. 20 , when the currentblock is a non-square block of N×(N/2), a right reference sample may bederived based on a top-right reference sample P(N, −1), a bottomreference sample may be derived based on a bottom-left reference sampleP(−1, N/2).

Alternatively, a right reference sample or a bottom reference sample maybe derived based on at least one of a weighted sum, an average, aminimum, or a maximum value of a he top-left reference sample P(N, −1)and a bottom-left reference sample P(−1, N/2). For example, the rightreference sample may be derived based on a weighted sum or an average ofP(N, −1) and P(−1, N/2), or may be derived by interpolating abottom-right reference sample and the top-right reference sample afterderiving the bottom-right reference sample P(N, N/2) based on P(N, −1)and P(−1, N/2). Alternatively, the bottom reference sample may bederived based on a weighted sum or an average of P(N, −1) and P (−1,N/2), or may be derived by interpolating the bottom-right referencesample and the bottom-left reference sample after deriving thebottom-right reference sample P(N, N/2) based on P (N, −1) and P (−1,N/2).

In an example described with reference to FIGS. 18 to 20 , a bottomreference sample may be derived based on at least one of a bottom-leftreference sample of the current block placed on the same horizontal lineas the bottom reference sample or a top-right reference sample of thecurrent block placed on the same vertical line as the right referencesample, and a right reference sample may be derived based on at leastone of a top-right reference sample of the current block placed on thesame vertical line as the right reference sample or a bottom-leftreference sample of the current block placed on the same horizontal lineas a bottom reference sample. Unlike the example as described, the rightreference sample or the left reference sample may be derived based on atleast one of a top center reference sample or a left center referencesample. For example, after deriving a bottom center sample using the topcenter sample and the bottom-left reference sample, bottom samples maybe generated by interpolation or extrapolation of the bottom centersample and the bottom-left sample. In addition, after deriving a rightcenter sample by using the left center sample and the right top sample,bottom samples may be generated by interpolation or extrapolation of theright center sample and the top-right sample.

A location of reference samples used to generate a first predictionimage and a second prediction image may be determined differentlyaccording to a size or a shape of a current block. For example,depending on the size or the shape of the current block, a position of atop reference sample or a left reference sample used to derive a rightreference sample or a bottom reference sample may be determineddifferently.

As an example, when the current block is a square block of N×N size, aright reference sample may be derived based on a top-right referencesample P(N, −1), while a bottom reference sample may be derived based ona bottom-left reference sample P(−1, N). Alternatively, when the currentblock is a square block of N×N size, a right reference sample and abottom reference sample may be derived at least one of a weighted sum,an average, a minimum, or a maximum value of the top-right referencesample P(N, −1) and the bottom-left reference sample P(−1, N).

On the other hand, when the current block is a non-square block of N×2/Nsize, a bottom center reference sample P(N/2, N/2) may be derived basedon a top center reference sample P(N/2, −1) and a bottom-left referencesample P(−1, N/2), and then bottom reference samples may be derivedbased on the derived bottom center reference sample. For example, thebottom reference samples may be derived through interpolation orextrapolation of the bottom center reference sample and the bottom-leftreference sample. Alternatively, when the current block is a non-squareblock of N/2×N size, a right center reference samples P(N/2, N/2) may bederived based on a top-right reference sample P(N/2, −1) and a leftcenter reference sample P(−1, N/2), and then right reference samples maybe derived based on the derived right center reference sample. Forexample, the right reference samples may be derived throughinterpolation or extrapolation of the right center reference sample andthe top-right reference sample.

A first prediction image may be calculated based on weighted predictionof reference samples placed on the same horizontal line as a predictiontarget sample. Also, a second prediction image may be calculated basedon weighted prediction of reference samples placed on the same verticalline as the prediction target sample.

In addition to the above-described example, the first prediction imageor the second prediction image may be generated using an average value,a minimum value, or a maximum value of reference samples.

Depending on whether a prediction target sample is included in apredetermined region of the current block, a size or a shape of thecurrent block, or the like, a method of deriving a reference sample maybe set differently, or a method of deriving a first prediction image ora second prediction may be set differently. Specifically, according to aposition of a prediction target sample, the number of reference samplesor a position of a reference sample used to derive a right or a bottomreference sample is determined differently, or a weight or the number ofreference samples used to derive a first prediction image or a secondprediction image may be set differently.

For example, a right reference sample used for generating a firstprediction image of prediction target samples included in apredetermined region may be derived using only a top reference sample,and a right reference sample used for generating a first predictionimage of a prediction target samples included outside the predeterminedregion may be derived based on a weighted sum or an average of a topreference sample and a left reference sample.

For example, as in an example shown in FIG. 19 , when the current blockis a non-square block whose a height is greater than a width, a rightreference sample of a prediction target sample at a position (x, y)included in a predetermined region in the current block may be derivedfrom P(N/2, −1). For example, the right reference sample of theprediction target sample included in the predetermined region may begenerated by copying a value of the reference sample P(N/2, −1). On theother hand, a right reference sample of a prediction target sample at aposition (x′, y′) included outside the predetermined region in thecurrent block may be derived based on a weighted sum or an average valueof P(N/2, −1) and P (−1, N). For example, the right reference sample ofthe prediction target sample included outside the predetermined regionmay be generated through interpolation of a bottom-right referencesample P(N/2, N) derived based on P(N/2, −1) and P(−1, N) and thetop-right reference sample P (N/2, −1).

Alternatively, for example, as in an example shown in FIG. 20 , when thecurrent block is a non-square block whose a width is greater than aheight, a bottom reference sample of a prediction target sample at aposition (x, y) included in a predetermined region in the current blockmay be derived from P(−1, N/2). For example, the bottom reference sampleof the prediction target sample included in the predetermined region maybe generated by copying a value of the reference sample P(−1, N/2). Onthe other hand, a bottom reference sample of a he prediction targetsample at a position (x′, y′) included outside the predetermined regionin the current block may be derived based on a weighted sum or anaverage value of P(N, −1) and P (−1, N/2). For example, the bottomreference sample of the prediction target sample included outside thepredetermined region may be generated through interpolation of abottom-right reference sample P(N, N/2) derived based on P(N, −1) andP(−1, N/2) and the bottom-left reference sample P (−1, N/2).

As another example, a first prediction image or a second predictionimage for prediction target samples included in a predetermined regionmay be generated based on a weighted sum of reference samples, and afirst prediction image or a second prediction image for predictiontarget samples outside the predetermined region may be generated usingan average value, a minimum value, or a maximum value of referencesamples, or using only one having a predefined position among referencesamples. For example, as in an example shown in FIG. 19 , when a currentblock is a non-square block whose a height is greater than a width, afirst prediction image for a prediction target sample at the position(x, y) included in a predetermined region in the current block may begenerated using only one of right reference sample P(N/2, y) derivedfrom P (N/2, −1) and left reference sample at a position P(−1, y). Onthe other hand, a first prediction image for a prediction target sampleat a position (x′, y′) not included in the predetermined region may begenerated based on a weighted sum or an average of a right referencesamples P(N/2, y′) derived from P(N/2, −1) and a reference sample at aposition of P(−1, y′).

Alternatively, as in an example shown in FIG. 20 , when a current blockis a non-square block whose a width is greater than a height, a secondprediction image for a prediction target sample at a position (x, y)included in a predetermined region in the current block may be generatedusing only one of a bottom reference sample P(x, N/2) derived from P(−1,N/2) or a top reference sample at a position P(x, −1). On the otherhand, a second prediction image for a prediction target sample at aposition (x′, y′) not included in the predetermined region may begenerated based on a weighted sum or an average of a bottom referencesamples P (x′, N/2) derived from P(−1, N/2) and a reference sample at ahe position of P (−1, y′).

In the above-described embodiment, a predetermined region may be atleast one a sample line adjacent to a boundary of the current block orone of remaining region except for the sample line. Herein, the boundaryof the current block may include at least one of a left boundary, aright boundary, a top boundary, or a bottom boundary. In addition, thenumber or location of boundaries used to define the predetermined regionmay be set differently according to a shape of the current block.Alternatively, the predetermined region may be in a shape of a blockadjoins one corner of the current block. In this case, a size and ashape of the predetermined region may be determined based on at leastone of a size or a shape of the current block.

In a planar mode, a final prediction image may be derived based on aweighted sum, an average, a minimum value, or a maximum value of a firstprediction image and a second prediction image.

For example, Equation 11 below illustrates an example of generating thefinal prediction image P based on a weighted sum of the first predictionimage Ph and the second prediction image P_(v).

P(x,y)=(w*P _(h)(x,y)+(1−w)*P _(v)(x,y)+N)>>(log 2(N)+1)  [Equation 11]

In Equation 11, a prediction weight w may be different according to ashape, a size of the current block, or a position of a prediction targetsample.

As an example, the prediction weight w may be derived in considerationof a width of the current block, a height of the current block, awidth-to-height ratio, or the like. When the current block is anon-square block whose a width is greater than a height, w may be setthat a higher weight is applied to the first prediction image. On theother hand, when the current block is a non-square block whose a heightis greater than a width, w may be set that a higher weight is applied tothe second prediction image.

As an example, when the current block is square, the prediction weight wmay have a value of ½. On the other hand, when the current block is anon-square block (e.g., (N/2)×N) whose a height is greater than a width,the prediction weight w may be set to ¼. In addition, when the currentblock is a non-square block (e.g., N×(N/2)) whose a width is greaterthan a height, the prediction weight w may be set to ¾.

In addition to a planar mode, intra prediction based on a DC mode or adirectional intra prediction mode also can be performed by usingreference samples other than left reference samples and/or top referencesamples. In a following embodiment, the left reference sample and thetop reference sample will be referred to as a first reference sample,and reference samples other than the left reference sample and the topreference sample will be referred to as a second reference sample. As anexample, the second reference sample may include a right referencesample and/or a bottom reference sample of the current block. Herein,bottom reference samples may refer to reference samples having a y-axiscoordinate greater than a prediction target sample of a bottom row inthe current block, and right reference samples may refer to referencesamples having an x-axis coordinate greater than a prediction targetsample of a rightmost column in the current block.

Whether to perform intra prediction using a second reference sample maybe determined based on at least one of a size, a shape or an intraprediction mode of the current block, or a position of a predictiontarget sample. For example, it may be determined whether to performintra prediction using the second reference sample based on whether theintra prediction mode of the current block is a vertical mode, ahorizontal mode, or a diagonal mode. Alternatively, intra prediction fora prediction target sample included in a predetermined region in thecurrent block is performed by using the second reference sample, whileintra prediction for a prediction target sample not included in thepredetermined region in the current block is performed by using a firstreference sample.

Alternatively, information indicating whether the second referencesample is used may be signaled through the bitstream. The informationmay be a 1-bit flag, an index used to determine an intra prediction modeof the current block, or the like.

Alternatively, whether to use the second reference sample may bedetermined based on whether the second reference sample is used in aneighboring block of the current block.

A second reference sample may be generated based on a first referencesample. As an example, second reference samples may be configured bychanging an order of first reference samples, or a second referencesamples may be derived using a first reference sample at a specificposition.

FIG. 21 is a diagram for explaining an example of deriving a secondreference sample using a first reference sample.

First, a bottom-right reference sample P(W, H) derived based on atop-right reference sample r(W, −1) and a bottom-left reference sampler(−1, H) of the current block may be derived. In detail, thebottom-right reference sample may be derived through a weighted sum oran average value of the top-right reference sample and the bottom-leftreference sample. Equation 12 shows an example of deriving thebottom-right reference sample.

$\begin{matrix}{{P( {W,H} )} = \frac{{W \times {r( {W,{- 1}} )}} + {H \times {r( {{- 1},H} )}}}{W + H}} & \lbrack {{Equation}12} \rbrack\end{matrix}$

As shown in Equation 12, the bottom-right reference sample may becalculated based on a weighted sum between the top-right referencesample and the bottom-left reference sample. In this case, a weightapplied to the top-right reference sample and the bottom-left referencesample may be determined according to a width and a height of thecurrent block. For example, when the current block is square, the sameweight is applied to the top-right reference sample and the bottom-leftreference sample. In contrast, when the current block is non-square,different weights may be applied to the top-right reference sample andthe bottom-left reference sample. However, the weight setting methodshown in Equation 12 is merely an example of the present invention, andthe present invention is not limited thereto. In addition to an exampleshown in Equation 12, the weight may be determined based on at least oneof a size, a shape or an intra prediction mode of the current block,availability of a reference sample, availability of a neighboring block,whether a neighboring block is encoded in an intra prediction mode, oran intra prediction mode of a neighboring block.

A right reference sample may be derived based on the top-right referencesample and the bottom-right reference sample. For example, the rightreference sample may be obtained by interpolating the top-rightreference sample and the bottom-right reference sample. Equation 13below shows an example of deriving the right reference sample.

$\begin{matrix}{{P_{r}( {W,y} )} = \frac{{( {H - 1 - y} ) \times {r( {W,{- 1}} )}} + {( {y + 1} ) \times {P( {W,H} )}}}{H}} & \lbrack {{Equation}13} \rbrack\end{matrix}$

As shown in Equation 13, the right reference sample Pr(W, y) (where y isan integer between 0 and CU height (cu_height)), may be obtained byweighted prediction of the top-right reference sample r(W, −1) and thebottom-right reference sample P(W, H). In this case, a weight applied tothe top-right reference sample and the bottom-right reference sample maybe determined based on at least one of a width, a height of the currentblock, or a position of the right reference sample. For example, as inan example shown in Equation 13, a weight of (H−1−y)/H is applied to thetop-right reference sample, while a weight of (y+1)/H is applied to thebottom-right reference sample. However, a weight setting method shown inEquation 13 is merely an example of the present invention, and thepresent invention is not limited thereto. In addition to an exampleshown in Equation 13, the weight may be determined based on at least oneof a size, a shape or an intra prediction mode of the current block,availability of a reference sample, availability of a neighboring block,whether a neighboring block is encoded in an intra prediction mode, oran intra prediction mode of a neighboring block.

A bottom reference sample may be derived based on the bottom-leftreference sample and the bottom-right reference sample. As an example,the bottom reference sample may be obtained by interpolating thebottom-left reference sample and the bottom-right reference sample.Equation 14 shows an example of deriving the bottom reference sample.

$\begin{matrix}{{P_{b}( {x,H} )} = \frac{{( {W - 1 - x} ) \times {r( {{- 1},H} )}} + {( {x + 1} ) \times {P( {W,H} )}}}{W}} & \lbrack {{Equation}14} \rbrack\end{matrix}$

As shown in Equation 14, the bottom reference sample Pb(x, H) (where xis an integer between 0 and CU width (cu_width)), may be obtained byweighted prediction of the bottom-left reference sample r(−1, H) and thebottom-right reference sample P(W, H). In this case, a weight applied tothe bottom-left reference sample and the bottom-right reference samplemay be determined based on at least one of a width, a height of thecurrent block, or a position of the bottom reference sample. Forexample, as in an example shown in Equation 14, a weight of (W−1−x)/W isapplied to the bottom-left reference sample, while a weight of (x+1)/His applied to the bottom-right reference sample. However, the weightsetting method shown in Equation 14 is only an example of the presentinvention, and the present invention is not limited thereto. In additionto an example shown in equation 14, the weight may be determined basedon at least one of a size, a shape or an intra prediction mode of thecurrent block, availability of a reference sample, availability of aneighboring block, whether a neighboring block is encoded in an intraprediction mode, or an intra prediction mode of a neighboring block.

When the current block is non-square, a right reference sample and abottom reference sample may be derived based on an example describedabove with reference to FIGS. 19 and 20 .

As in the above-described example, a second reference sample such as aright reference sample and a bottom reference sample may be derivedusing a first reference samples of a fixed position such as a top-rightreference sample and a bottom-left reference sample. Unlike the exampledescribed above, a second reference sample may be derived using a firstreference sample at a position different from a top-right referencesample and/or a top-left reference sample. For example, a rightreference sample and a bottom reference sample may be derived by using afirst reference sample such as a top center reference sample of thecurrent block or a left center sample of the current block.

Alternatively, a first reference sample used to derive a secondreference sample may be determined according to an intra prediction modeof the current block. As an example, a right reference sample and/or abottom reference sample may be derived based on a he left referencesample and/or a top reference sample specified by a directionality ofthe intra prediction mode of the current block.

Alternatively, a second reference sample may be determined using aplurality of left reference samples and/or a plurality of top referencesamples. For example, at least one of a right reference sample, a bottomreference sample, or a right bottom reference sample may be generatedbased on a weighted sum, an average value, a maximum value, or a minimumvalue of a plurality of left reference samples, or a weighted sum, anaverage value, a maximum value or a minimum value of a plurality of topreference samples.

Alternatively, a second reference sample may be generated by copying afirst reference sample. In this case, the first reference sample used togenerate the second reference sample may have a fixed position or may beadaptively determined according to a size, a shape or an intraprediction mode or the current block, or position of the secondreference sample.

In an above example, although illustrated as having W bottom referencesamples and H right reference samples, a larger number of bottomreference samples and/or right reference samples may be derived. Forexample, bottom reference samples may be derived up to the same verticalline as the rightmost top reference sample r(2W−1, −1), or rightreference samples may be derived up to the same horizontal line as thelowest left reference sample r(−1, 2H−1).

In this case, a bottom reference sample having an x coordinate greaterthan W may be generated by extrapolating a bottom-left reference sampleand a bottom-right reference sample, or may be generated byinterpolating the bottom-right reference sample P (W, H) and a rightmostbottom reference sample P(2W−1, H). The rightmost bottom referencesample may be generated by copying a rightmost top reference sampler(2W−1, −1), or may be generated through a weighted sum operationbetween the rightmost top reference sample and the bottom-left referencesample. A right reference sample having a y coordinate greater than Hmay be generated by extrapolating the top-right reference sample and thebottom-right reference sample, or may be generated by interpolation thebottom-right reference samples P(W, H) and a lowest right referencesamples P (W, 2H−1). In this case, the lowest right reference sample maybe generated by copying a lowest left reference sample r (−1, 2H−1) ormay be generated by a weighted sum operation between the lowest leftreference sample and the top-left reference sample.

Based on the first reference samples and a predetermined intraprediction mode, intra prediction may be performed on a current block,and the second reference samples may be derived based on predictionsamples generated by the intra prediction. Here, the second referencesamples may be derived based on a prediction sample according to aresult of performing the intra prediction or a reconstructed samplebased on the prediction sample. The reconstructed value may be a valuebefore the in-loop filter is applied or a value after the in-loop filteris applied.

The prediction sample is used only to derive the second referencesamples, and may not be used as an actual prediction sample of thecurrent block. That is, even if intra prediction is performed based onthe predetermined intra prediction mode in order to derive the secondreference samples, the actual prediction of the current block may beobtained by applying again the same or different intra prediction modeas the predetermined intra prediction mode.

Alternatively, based on the prediction sample obtained based on thepredetermined intra prediction mode and an additional prediction sampleobtained based on a prediction mode different from the predeterminedintra prediction mode, a final prediction sample of the current blockmay be obtained. The final prediction sample may be obtained based on aweighted sum operation or an average operation between the predictionsample and the additional prediction sample.

In an embodiment to be described later, the prediction sample used toderive the second reference samples will be referred to as a temporaryprediction sample.

A predetermined intra prediction mode for obtaining the temporaryprediction sample may include at least one of a planar mode, a DC mode,a horizontal mode, a vertical mode, and a diagonal mode.

FIG. 22 is a diagram illustrating an example of deriving a rightreference sample and a bottom reference sample by using a temporaryprediction sample obtained based on a planner mode.

Based on the planner mode, the temporary prediction sample for thecurrent block may be obtained. Specifically, the temporary predictionsample for a prediction target sample may be generated by using a firstprediction sample and a second prediction sample for the predictiontarget sample. The first prediction sample may be obtained using areference sample placed in a horizontal direction of the predictiontarget sample. As an example, the first prediction sample may begenerated based on a weighted sum operation of a left reference samplehaving the same y-coordinate as the prediction target sample and areference sample adjacent to a top-right corner. The second predictionsample may be obtained using a reference sample placed in a verticaldirection of the prediction target sample. As an example, the secondprediction sample may be generated based on a weighted sum operation ofa top reference sample having the same x-coordinate as the predictiontarget sample and a reference sample adjacent to a bottom-left corner.

The second reference sample may be generated by copying a temporaryprediction sample adjacent to the second reference sample. As anexample, the right reference sample may be generated by copying thetemporary prediction sample located at the right boundary of the currentblock, and the bottom reference sample may be generated by copying thetemporary prediction sample located at the bottom boundary of thecurrent block.

Alternatively, the second reference sample may be derived by adding anoffset to the temporary prediction sample adjacent to the secondreference sample. As an example, the right reference sample may bederived by adding an offset to the temporary prediction sample locatedat the right boundary of the current block, and the bottom referencesample may be derived by adding the offset to the temporary predictionsample located at the bottom boundary of the current block. The offsetmay be a difference value between the temporary prediction sample and aneighboring temporary prediction sample neighboring the temporaryprediction sample.

Alternatively, the second reference sample may be generated based on aninterpolation of a plurality of temporary prediction samples, or, aweighted sum operation or an average operation of the plurality oftemporary prediction samples. As an example, the right reference samplemay be generated based on a weighted sum operation or an averageoperation of the temporary prediction samples located at the rightboundary of the current block and the neighboring temporary predictionsample neighboring the temporary prediction sample. The bottom referencesample may be generated by interpolating a temporary prediction samplelocated at the bottom boundary of the current block and the neighboringtemporary prediction sample neighboring the temporary prediction sample,or based on a weighted sum operation or an average operation of thetemporary prediction samples.

Alternatively, the second reference sample may be derived based on aweighted sum operation or an average operation of neighboring referencesamples. As an example, a right reference sample adjacent to a rightboundary of the current block may be derived by copying a temporaryreference sample located at the right boundary of the current block, anda bottom boundary sample adjacent to a bottom boundary of the currentblock may be derived by copying a temporary reference sample located atthe bottom boundary of the current block. In this case, a referencesample (e.g., P(W, H)) adjacent to a bottom-right corner of the currentblock may be derived based on a weighted sum operation or an averageoperation of a neighboring right reference sample (e.g., P(W, H−1)) anda neighboring bottom reference sample (e.g., P(W−1, H)).

A predetermined intra prediction mode for obtaining a temporaryprediction sample may be predefined in an encoder and a decoder.Alternatively, information for determining the predetermined intraprediction mode may be signaled through the bitstream. Alternatively,the predetermined intra prediction mode may be determined based on anintra prediction mode used to obtain an actual prediction sample.

A first reference samples may be arranged in one dimension to generate afirst one-dimensional reference sample group, and a second referencesamples may be arranged in one dimension to generate a secondone-dimensional reference sample group. The first one-dimensionalreference sample group may be configured with only first referencesamples, and the second one-dimensional reference sample group may beconfigured with only second reference samples. Alternatively, the firstone-dimensional reference sample group may be configured to include notonly the first reference samples but also at least one or more of thesecond reference samples, and the second one-dimensional referencesample group may be configured to include not only the second referencesamples but also at least one or more of the first reference samples.

FIG. 23 is a diagram illustrating reference samples configuring aone-dimensional reference sample group.

As in an example shown in FIG. 23 (a), the first one-dimensionalreference sample group may be composed of left reference samples and topreference samples of a current block.

On the other hand, as in an example shown in FIG. 23(b), the secondone-dimensional reference sample group may be configured to furtherinclude not only the right reference samples and the bottom referencesamples of the current block, but also some left reference samples andsome top reference samples.

That is, a bottom-left reference sample r(−1, H) and left referencesamples having a y-axis coordinate greater than the bottom-leftreference sample among left reference samples may be included in boththe first one-dimensional reference sample group and the secondone-dimensional reference sample group. Also, a top reference samplesr(W, −1) and top reference samples having an x-axis coordinate greaterthan the top-right reference sample among top reference samples may beincluded in both the first one-dimensional reference sample group andthe second one-dimensional reference sample group.

Alternatively, based on at least one of a size, a shape, or an intraprediction mode of the current block, a part of first reference samplesmay be included only in the first one-dimensional reference samplegroup, or a part of first reference samples may be included only in thesecond one-dimensional reference sample group. In addition to aconfiguration of a one-dimensional reference sample group, anarrangement order of reference samples constituting the one-dimensionalreference sample group also can be variably determined based on at leastone of a size, a shape, or an intra prediction mode of the currentblock.

For convenience of description, in the embodiment described below, areference sample group including left reference samples and topreference samples of the current block will be referred to as a firstreference sample group (e.g., a first one-dimensional reference samplegroup), a reference sample group including right reference samples andbottom reference samples of the current block will be referred to as asecond reference sample group (e.g., a second one-dimensional referencesample group). For example, the first reference sample group and thesecond reference sample group may be classified according to whetherright reference samples and bottom reference samples are included. Inaddition, in order to perform intra prediction of a prediction targetsample, a reference sample selected from the first reference samplegroup will be referred to as a first reference target sample, and areference sample selected from the second reference sample group will bereferred to as a second reference target sample.

Intra prediction of the current block may be performed using at leastone of a first reference sample group or a second reference samplegroup. For example, a prediction value of a prediction target sample inthe current block may be obtained based on at least one of a firstreference target sample selected from the first reference sample groupor a second reference target sample selected from the second referencesample group. In this case, the first reference target sample and/or thesecond reference sample may be determined based on at least one of ashape, a size, or an intra prediction mode of the current block. Forexample, when the intra prediction mode of the current block isdetermined, the first reference target sample for the prediction targetsample may be specified according to a direction of the determined intraprediction mode, and the second reference target samples for theprediction target sample may be specified according to a reversedirection of the determined intra prediction mode. Alternatively, thefirst reference target sample and the second reference target sample maybe specified according to the direction of the determined intraprediction mode.

FIGS. 24 and 25 are diagrams illustrating positions of a first referencetarget sample and a second reference target sample.

FIG. 24 shows an example in which a reference sample placed in adirection indicated by an intra prediction mode of a current block isdetermined as a first reference target sample, and a reference sampleplaced in a direction opposite to the direction is determined as asecond reference target sample.

When the intra prediction mode of the current block is in a top-rightdiagonal direction, a reference sample placed in the top-right diagonaldirection from a prediction target sample among the reference samplesincluded in the first reference sample group may be determined as afirst reference target sample. In addition, a reference sample placed ina direction opposite to the top-right diagonal direction (i.e., abottom-left diagonal direction) among the reference samples included inthe second reference sample group may be determined as a secondreference target sample.

FIG. 25 shows an example in which reference samples placed in adirection indicated by an intra prediction sample of a current block aredetermined as a first reference target sample and a second referencetarget sample, respectively.

When the intra prediction mode of the current block indicates thetop-right direction, a reference sample placed in the top-rightdirection of a prediction target sample among reference samples includedin the first reference sample group may be determined as the firstreference target sample, and the reference samples placed in thetop-right direction of the prediction target sample among referencesamples included in the second reference sample group may be determinedas the second reference target sample. In FIG. 25(a), it is shown thatthe top reference sample is selected as the first reference targetsample, and the right reference sample is selected as the secondreference target sample.

When the intra prediction mode of the current block indicates thebottom-left direction, a reference sample placed in the bottom-leftdirection of the prediction target sample among reference samplesincluded in the first reference sample group is determined as the firstreference target sample, and a reference sample placed in thebottom-left direction of the prediction target sample among thereference samples included in the second reference sample group may bedetermined as the second reference target sample. In FIG. 25 (b), it isshown that the left reference sample is selected as the first referencetarget sample, and the bottom reference sample is selected as the secondreference target sample.

Alternatively, a position of the second reference target sample may bedetermined based on a position of the first reference target sample, ora position of the first reference target sample may be determined basedon a position of the second reference target sample. For example, thesecond reference target sample having the same x coordinate or the samey coordinate as the first reference target sample may be selected, orthe second reference target sample having a position derived by addingan offset to the x coordinate or the y coordinate of the first referencetarget sample may be selected. Herein, the offset may have a fixed valueor may be adaptively determined according to a size, a shape, or anintra prediction mode of the current block.

Alternatively, a position of the first reference target sample and/orthe second reference target sample may be determined based on a positionof a prediction target sample. For example, the first reference targetsample and/or the second reference target sample having the same xcoordinate or the same y coordinate as the prediction target sample maybe selected, or the first reference target sample and/or the secondreference target sample having a position obtained by adding an offsetto the x coordinate or the y coordinate of the prediction target samplemay be selected. Herein, the offset may have a fixed value or may beadaptively determined according to a size, a shape, or an intraprediction mode of the current block.

A prediction value of a prediction target sample may be generated basedon at least one of a first prediction image based on the first referencetarget sample or a second prediction image based on the second referencetarget sample. In this case, the first prediction image may be generatedbased on the above description through Equation 8 to Equation 10described above.

The second prediction image may be generated by interpolating or copyingthe second reference target sample specified according to a slope of anintra prediction mode of the current block. For example, Equation 15 isa diagram illustrating an example of deriving the second predictionimage by copying the second reference target sample.

P ₂(x,y)=P_2nd_1D(x+iIdx++1+f)  [Equation 15]

In Equation 15, P2(x, y) represents the second prediction image, andP_2nd_1D (x+iIdx+1+f) represents the second reference target sample.

When only one second reference target sample cannot express a slope ofan intra prediction mode of the current block, the second predictionimage may be generated by interpolating a plurality of second referencetarget samples. Specifically, when an imaginary angular line following aslope and/or angle of an intra prediction mode does not pass an integerpel (i.e., a reference sample of an integer position), the secondprediction image may be obtained by interpolating second referencesamples adjacent to a left and a right or an up and a down of theangular line. For example, Equation 16 illustrates an example ofobtaining the second prediction image by interpolating the secondreference samples.

$\begin{matrix}{{P_{2}( {x,y} )} = {{\frac{( {32 - i_{fact}} )}{32} \times {P\_}2{nd\_}1{D( {x + {iIdx} + 1 + f} )}} + {\frac{i_{fact}}{32} \times {P\_}2{nd\_}1{D( {x + {iIdx} + 2 + f} )}}}} & \lbrack {{Equation}16} \rbrack\end{matrix}$

A coefficient of an interpolation filter may be determined based on aweight related parameter ifact. As an example, the coefficient of theinterpolation filter may be determined based on a distance between afractional pel and an integer pel (i.e., an integer position of eachreference sample) located on an angular line.

In Equation 16, it is illustrated that a interpolation filter having atap number of 2 is used, but an interpolation filter having a tap numbergreater than 2 can be used instead.

A final prediction image of a prediction target sample may be obtainedbased on at least one of a first prediction image or a second predictionimage. For example, the first prediction image may be determined as thefinal prediction image of a prediction target sample, or the secondprediction image may be determined as the final prediction image of theprediction target sample. Alternatively, the final prediction image ofthe prediction target sample may be determined based on a weighted sumor an average of the first prediction image and the second predictionimage.

FIG. 26 is a diagram illustrating an example of obtaining a predictionsample based on a weighted sum operation of the first reference targetsample and the second reference target sample.

The prediction value of the prediction target sample may be obtainedbased on a weighted sum operation of a first prediction image and asecond prediction image. In other words, the predicted value may beobtained based on a weighted sum operation of the first reference targetsample and the second reference target sample.

Equation 17 shows an example of obtaining the final prediction samplebased on a weighting operation of the first prediction image and thesecond prediction image.

P(x,y)=w(x,y)×P ₁(x,y)+(1−w(x,y))×P ₂(x,y)  [Equation 17]

In Equation 17, P1(x, y) represents a first prediction image or a firstreference target sample, and P2(x, y) represents a second predictionimage or a second reference target sample. In addition, w(x, y)represents a weight applied to the first prediction image.

The weight applied to each prediction target sample may be determinedbased on a position of the prediction target sample. For example,Equation 18 below shows an example of determining the weight w.

w=(x+y)/N  [Equation 18]

In Equation 18, x represents the x-axis coordinate of the predictiontarget sample, and y represents the y-axis coordinate of the predictiontarget sample. N denotes an L1 norm between the first reference targetsample and the second reference target sample. For example, if thecoordinate of the first reference target sample is (x0, y0) and thecoordinate of the second reference target sample is (x1, y1), the N maybe defined |x0−x1|+|y0−y1|.

Alternatively, weights assigned to the first prediction image and thesecond prediction image may be determined based on at least one of alocation of a prediction target sample, or a size, a shape, or an intraprediction mode of the current block. For example, Equation 19 shows anexample in which the weights are determined according to a size of thecurrent block and a position of the prediction target sample.

$\begin{matrix}{{P( {x,y} )} = \frac{{( {( {W + H} ) - ( {x + y} )} ) \times {P_{1}( {x,y} )}} + {( {x + y} ) \times {P_{2}( {x,y} )}}}{W + H}} & \lbrack {{Equation}19} \rbrack\end{matrix}$

In Equation 19, W and H represent a width and a height of the currentblock, respectively, and (x, y) represents a coordinate of a predictiontarget sample.

As in an example shown in Equation 19, as a prediction target sample iscloser to a top-left corner of the current block, a weight to be appliedto a first predicted image may be increased. In addition, as aprediction target sample is closer to a bottom-right corner of thecurrent block, a weight applied to a second prediction image may beincreased.

Alternatively, a weight may be derived from a neighboring block of thecurrent block. Herein, the neighboring block of the current block mayinclude at least one of a top neighboring block, a left neighboringblock, or a neighboring block adjacent to a corner of the current block(e.g., a top-left neighboring block, a top-right neighboring block, or abottom-left neighboring block).

Alternatively, information for determining a weight may be signaled viaa bitstream. The information may indicate a weight value applied to afirst prediction image or a second prediction image, or may indicate aweight difference value between the current block and a neighboringblock.

Alternatively, the first prediction image may be set as a finalprediction image in a first region of the current block, and the secondprediction image may be set as the final prediction image in a secondregion of the current block. The first region and the second region maybe generated by dividing the current block in two based on a verticalline, a horizontal line, or a diagonal line. For example, the firstregion and the second region may be rectangular or triangular partitionsgenerated by dividing the current block. A predicted value of a positionadjacent to the boundary between the first region and the second regionmay be obtained by weighted predicting the first predicted image and thesecond predicted image. In this case, the weights applied to the firstprediction image and the second prediction image may be determined basedon at least one of a position of the prediction target sample, a size, ashape, or an intra prediction mode of the current block.

As in the above-described example, obtaining a final prediction imagebased on a plurality of prediction images may be referred to asbi-directional intra prediction (or bi-intra prediction).

Bi-intra prediction may be applied only for a part of regions in thecurrent block. In this case, a region to which the bi-intra predictionis applied may be pre-defined in the encoder and the decoder. Forexample, the bi-intra prediction may be applied to a predetermined sized(e.g., 4×4) block adjacent to a bottom-right corner of the currentblock. Alternatively, a region to which the bi-intra prediction isapplied may be determined adaptively according to a size, a shape, or anintra prediction mode of the current block. Alternatively, informationfor determining a region to which the bi-intra prediction is applied(e.g., information indicating a size or a location of the area) may besignaled through the bitstream.

FIG. 28 is a diagram illustrating a region to which bi-directional intraprediction is applied.

In a region to which bi-directional intra prediction is applied, a finalprediction sample may be obtained by weighted prediction of a firstprediction image and a second prediction image. On the other hand, afirst prediction image or a second prediction image may be determined asa final prediction sample in a region where bi-directional intraprediction is not applied.

The region to which bi-directional intra prediction is applied may havea rectangular shape or a triangular shape.

In the above example, it has been described that bi-directional intraprediction is performed using a first reference target sample selectedfrom a first sample group and a second reference target sample selectedfrom a second sample group. Unlike the example as described, it is alsopossible to select a plurality of reference samples from a first samplegroup to perform bi-directional intra prediction, or to select aplurality of reference samples from a second sample group to performbi-directional intra prediction. For example, when an intra predictionmode of the current block has a top-right diagonal direction or abottom-left diagonal direction, bi-directional intra prediction may beperformed by selecting a top reference sample and a left referencesample from a first sample group. That is, a final prediction sample ofthe current block may be obtained by weighted prediction of a firstreference image obtained based on the top reference sample and a secondreference image obtained based on the bottom reference sample.

Alternatively, according to an intra prediction mode, bi-directionalintra prediction may be performed by selecting a right reference sampleand a bottom reference sample from a second sample group.

Bi-directional intra prediction may be defined as an independent intraprediction mode. For example, a total of 2N+2 intra prediction modes maybe defined by defining N directional prediction modes and Nbi-directional intra prediction modes corresponding to the N directionalprediction modes. For example, by adding a bi-directional intraprediction mode to an intra prediction mode illustrated in FIG. 9 , atotal of 68 intra prediction modes (that is, two non-directional intraprediction modes, 33 directional intra prediction modes, and 33bi-directional intra prediction modes) may be defined. Of course, it isalso possible to use more or less than 33 directional intra predictionmodes or to use more or less than 33 bi-directional intra predictionmodes.

Alternatively, after determining an intra prediction mode of the currentblock, it may be determined whether to use the determined intraprediction mode to switch to a bi-directional prediction mode. Forexample, when an intra prediction mode of the current block isdetermined, information about whether to use the determined intraprediction mode as a bi-directional intra prediction mode may bedecoded. The information may be a 1-bit flag (e.g., bi_intra_flag), butis not limited thereto. A value of bi_intra_flag of 0 indicates thatdirectional intra prediction is performed, and a value of bi_intra_flagof 1 indicates that bi-directional intra prediction is performed. Thatis, when the value of bi_intra_flag is 0, a first prediction image isdetermined as a final prediction sample of the current block, whereaswhen the value of bi_intra_flag is 1, weighted prediction of a firstprediction image and a second prediction image may be determined as afinal prediction sample of the current block.

Alternatively, depending on whether a neighboring block adjacent to thecurrent block used a bi-directional intra prediction mode, it may bedetermined whether the current block uses a bi-directional intraprediction mode. For example, when an intra prediction mode of thecurrent block is the same as a candidate (i.e., MPM candidate) derivedbased on an intra prediction mode of the neighboring block, whether touse a bi-directional intra prediction mode for the current block may bedetermined in the same as whether a bi-directional intra prediction modewas used in the neighboring block.

Alternatively, whether to perform bi-directional intra prediction may bedetermined based on a size and/or a shape of the current block. Forexample, bi-directional intra prediction is allowed for only a block of32×32 or more. Accordingly, bi-directional intra prediction may not beapplied when a size of the current block is smaller than 32×32, whereasbi-directional intra prediction may be applied when a size of thecurrent block is 32×32.

As another example, bi-directional intra prediction may be allowed onlyfor a square block, or bi-directional intra prediction may be allowedonly for a non-square block.

Alternatively, bi-directional intra prediction may be applied only for apart of directional intra prediction modes. For example, FIG. 26 is anexample of identifying and indicating a directional prediction mode inwhich bi-directional intra prediction is allowed. As shown in theexample illustrated in FIG. 26 , bi-directional intra prediction isallowed only for a part of intra prediction modes between a horizontaldirection and a vertical direction. In this case, bi-directional intraprediction may be performed by default when an intra prediction mode isselected within the range, or it may be determined whether to performbi-directional intra prediction mode based on at least one ofinformation parsed through the bitstream, or a size or a shape of thecurrent block when an intra prediction mode within the range isselected.

An intra prediction mode in which bi-directional intra prediction isallowed is not limited to the example shown in FIG. 26 . An intraprediction mode in which bi-directional intra prediction is allowed maybe predefined in the encoder and the decoder, or may be adaptivelydetermined according to a size and/or a shape of the current block.Alternatively, information for determining an intra prediction mode inwhich bi-directional intra prediction is allowed may be signaled througha bitstream.

FIG. 29 is a flowchart illustrating a process of determining whether toapply a bi-directional intra prediction mode according to the presentinvention.

First, it may be determined whether an intra prediction mode of acurrent block is a non-directional mode (S2710). The non-directionalmode may include at least one of a planar and a DC.

Information indicating whether the intra prediction mode of the currentblock is the non-directional mode may be signaled through a bitstream.For example, at least one of a flag indicating whether the intraprediction mode of the current block is the non-directional mode, a flagindicating whether the intra prediction mode of the current block is theplanar mode, or a flag indicating whether the intra prediction mode ofthe current block is the DC mode may be signaled through the bitstream.

Alternatively, the intra prediction mode of the current block may bedetermined based on an MPM candidate or residual mode information.

When the intra prediction mode of the current block is a non-directionalmode, bi-directional intra prediction is not applied to the currentblock (S2720).

When the intra prediction mode of the current block is not thenon-directional mode, whether bi-directional intra prediction is appliedto the current block may be determined (S2730). Whether bi-directionalintra prediction is applied to the current block may be determined basedon information parsed from the bitstream, a shape of the current block,a size of the current block, or the intra prediction mode of the currentblock.

For example, it may be determined whether bi-directional intraprediction is applied to the current block based on a flag (e.g.,bi_pred_flag) parsed from the bitstream. A value of the bi_pred_flag of0 indicates that bi-directional intra prediction is not applied to thecurrent block, and a value of the bi_pred_flag of 1 indicates thatbi-directional intra prediction is applied to the current block.Alternatively, it may be determined whether bi-directional intraprediction is applied to the current block based on whether the intraprediction mode of the current block is a directional prediction mode towhich bi-directional intra prediction is applied.

In order to perform uni-directional or bi-directional intra prediction,a reference sample of the current block may be derived. The referencesamples may include first reference samples adjacent to the left and topof the current block and second reference samples adjacent to the rightand bottom. The second reference samples may be derived only whenbi-directional intra prediction is applied to the current block.

If bi-directional intra prediction is not applied to the current block,uni-directional intra prediction may be performed according to the intraprediction mode of the current block (S2740). In uni-directional intraprediction, a prediction sample may be obtained based on at least one ofthe first reference samples.

When bi-directional intra prediction is applied to the current block,bi-directional intra prediction may be performed according to the intraprediction mode of the current block (S2750). In bi-directional intraprediction, the prediction sample may be obtained based on a firstprediction image obtained based on at least one of a first referencetarget samples and a second prediction image obtained based on at leastone of a second reference target samples. The first reference targetsamples and the second basic references sample may be determined basedon a directionality of the intra prediction mode, or may be determinedbased on a size, shape of the current block or a location of otherreference target sample. When the first prediction image and the secondprediction image are acquired, the prediction sample may be obtained byweighted prediction of the first prediction image and the secondprediction image.

As another example, after dividing the current block into a plurality ofregions, intra prediction may be performed on each of the dividedregions. For example, for a first region included in the current block,intra prediction may be performed using reference samples included in afirst reference sample group. On the other hand, for a second regionincluded in the current block, intra prediction may be performed usingreference samples derived based on the predicted value or areconstructed value of the first region, the reference samples includedin the first reference sample group, or reference samples included in asecond reference sample group.

In this case, a first intra prediction mode applied to the first regionand a second intra prediction mode applied to the second region may bethe same or different from each other. As an example, any one of thefirst intra prediction mode and the second intra prediction mode may bepredefined by an encoder and a decoder. For example, any one of thefirst intra prediction mode and the second intra prediction mode may bea planar mode, a DC mode, a horizontal mode, a vertical mode, or adiagonal mode. Alternatively, any one of the first intra prediction modeand the second intra prediction mode may be variably determined based onat least one of a size, shape, or division type of the current block.For example, when the width of the current block is greater than theheight, any one of the first intra prediction mode and the second intraprediction mode may be determined as the vertical mode. On the otherhand, when the height of the current block is greater than the width,any one of the first intra prediction mode and the second intraprediction mode may be determined as the horizontal mode. When the widthand height of the current block are the same, either of the first intraprediction mode and the second intra prediction mode may be determinedas the planar mode or the DC mode.

The other one of the first intra prediction mode and the second intraprediction mode may be determined using an MPM candidate-basedderivation method.

Each of the first region and the second region may include at least onesample included in a current block. For example, the first region mayinclude at least one of n columns to the left (or right) of the currentblock or m rows to the top (or bottom) of the current block. The n and mmay be an integer of 1, 2 or more. Alternatively, the n and m may bedetermined based on at least one of the size, shape, or intra predictionmode of the current block. The second region may be a remaining regionother than the first region or a partial region of the remaining region.

One coding block may be divided into a plurality of sub-blocks, andintra prediction may be performed on each of the sub-blocks. The intraprediction method as described above may be referred to as a multipleintra prediction method.

Sub-blocks generated by dividing one coding block may have the form ofN×M. Here, the N and M are integers of 1 or more, and the N and M may bethe same or different from each other. The number of sub-blocks or thesize of the sub-blocks included in the coding block may be determinedbased on at least one of the size, shape, or intra prediction mode ofthe current block.

One intra prediction mode may be applied to a plurality of sub-blocks.In this case, intra prediction for a first sub-block may be performedbased on reference samples adjacent to the first sub-block, and intraprediction for a second sub-block may be performed based on referencesamples adjacent to the second sub-block. When the first sub-block islocated on a left or top of the second sub-block, at least one of thereference samples of the second sub-block may be derived from areconstructed sample of the first sub-block.

Alternatively, a different intra prediction mode or a differentdirectional intra prediction mode may be applied to each sub-block. Inthis case, when the intra prediction mode of the first sub-block is anon-directional mode, the intra prediction mode of the second sub-blockmay also be set to have a non-directional mode. For example, when the DCmode is applied to the first sub-block, the planar mode may be appliedto the second sub-block. Alternatively, an intra prediction mode appliedto the second sub-block may be derived based on an intra prediction modeapplied to the first sub-block. For example, the intra prediction modeapplied to the second sub-block may be derived by adding or subtractingan offset from the intra prediction mode applied to the first sub-block.The offset may be determined based on at least one of the size of thecurrent block, shape of the current block, or the intra prediction modeof the first sub-block. Alternatively, information for determining theoffset may be signaled through a bitstream. Alternatively, the intraprediction mode of the second sub-block may be set to an angle invertedfrom the intra prediction mode applied to the first sub-block, or may beset to an intra prediction mode having a predetermined angle differencefrom the intra prediction mode applied to the first sub-block.

Alternatively, the intra prediction mode of the second sub-block may bederived from the intra prediction mode of the first sub-block using apredefined mapping table. The mapping table may define a correspondencerelationship between intra prediction modes. The mapping table may bepredefined in an encoder and a decoder.

Alternatively, information for determining the intra prediction mode ofthe first sub-block and information for determining the intra predictionmode of the second sub-block may be independently signaled.

Alternatively, a non-wide angle intra prediction mode may be applied tothe first sub-block, and a wide angle intra prediction mode may beapplied to the second sub-block. Whether to apply the wide angle intraprediction mode to the sub-block may be determined based on the size orshape of the current block. The non-wide angle intra prediction mode maybe an intra prediction mode having a predefined angle or an intraprediction mode in which an angle (or index) difference from the wideangle intra prediction mode is a predefined value.

FIG. 30 illustrates an embodiment to which a multiple intra predictionmethod is applied.

After dividing the non-square coding block into a plurality ofsub-blocks, a non-wide angle intra prediction mode may be applied to thefirst sub-block, and a wide angle intra prediction mode may be appliedto the second sub-block.

Here, the first sub-block and the second sub-block may be determinedaccording to a scan order between blocks.

Contrary to the illustrated example, a wide angle intra prediction modemay be applied to the first sub-block, and a non-wide angle intraprediction mode may be applied to the second sub-block.

Whether to apply the multiple intra prediction method may be determinedbased on the size or shape of the current block. For example, when thecurrent block is a non-square type, it may be set to apply the multipleintra prediction methods. Alternatively, information indicating whetherto apply the multiple intra prediction methods may be signaled throughthe bitstream. As an example, the syntax isMultipleIntra_flag indicatingwhether the multiple intra prediction method is applied may be signaledthrough a sequence header, a picture header, a slice header, or a blockheader. For example, when a value of the isMultipleIntra_flag is 1, itmay mean that the multiple intra prediction method is applied to allnon-square coding units. On the other hand, when the value of theisMultipleIntra_flag is 0, it may mean that the multi-intra predictionmethod is not applied to all non-square coding units.

Alternatively, whether to apply the multiple intra prediction method maybe determined based on coding information. The coding information mayinclude at least one of the size, shape, or split type of the currentblock. For example, when the size of the current block is larger than athreshold value or when the size of the current block is smaller thanthe threshold value, the multiple intra prediction method may beapplied. The threshold value may represent a maximum size or a minimumsize of a block in which the multiple intra prediction method isallowed. The threshold value may be predefined by an encoder and adecoder. Alternatively, information for determining the threshold valuemay be signaled through the bitstream. As another example, when a splittype of a higher node is a first type, the multiple intra predictionmethod may be allowed, and when the split type of the higher node is asecond type, the multiple intra prediction method may not be allowed.The first type includes at least one of quad tree division, binary treedivision, or triple tree division, and the second type includes a splittype other than the first type.

When the intra prediction modes applied to each of the sub-blocks aredifferent, a smoothing filter may be applied at a boundary of thesub-blocks.

FIG. 31 is a diagram illustrating an example in which a smoothing filteris applied.

A smoothing filter may be applied to samples located at a boundarybetween the first sub-block and the second sub-block. In this case, thesample to which the smoothing filter is applied may be a predictionsample or a reconstructed sample restored based on the predictionsample. Samples located at the boundary of the first sub-block may bemodified with a filtering value based on n samples included in the firstsub-block and m samples included in the second sub-block. In addition,the samples located at the boundary of the second sub-block may bemodified to a filtering value based on n samples included in the secondsub-block and m samples included in the first sub-block. Here, n and mmay be integers of 1, 2 or more.

In the example shown in of FIG. 31(a), a sample q located at theboundary of the first sub-block may be modified to the value calculatedby applying the smoothing filter to the sample q, a sample p located atthe left of the sample q and a sample r located at the right of thesample q. Here, the sample q and sample p are included in the firstsub-block, and the sample r is included in the second sub-block.

In the example shown in of FIG. 31(b), a sample r located at theboundary of the second sub-block may be modified to the value calculatedby applying the smoothing filter to the sample r, a sample q located atthe left of the sample r, and a sample s located at the right of thesample r. Here, the sample q is included in the first sub-block, and thesamples r and s are included in the second sub-block.

The coefficient of the smoothing filter may be {1, 2, 1}.

In FIG. 31 , it is illustrated that the smoothing filter is applied onlyto samples located at the boundary between the first sub-block and thesecond sub-block, but the present invention is not limited thereto. Asmoothing filter may be applied to samples included from the boundary ofthe first sub-block and the second sub-block to the k-th line (column orrow). Here, the k may be an integer of 1, 2 or more. The number of linesto which the smoothing filter is applied may be determined based on atleast one of the size, shape, or intra prediction mode of the currentblock.

Samples used in the smoothing filter may be arranged in a line along ahorizontal direction or vertical direction. For example, as in theexample illustrated in FIG. 31 , when sub-blocks are arranged in a linealong the horizontal direction, filtering may be performed using thesamples arranged in the line along the horizontal direction. On theother hand, when sub-blocks are arranged in a line along the verticaldirection, filtering may be performed using the samples arranged in theline along the vertical direction.

Alternatively, positions of samples used in the smoothing filter may bedetermined based on the intra prediction mode. For example, when anintra prediction mode of a first sub-block is a diagonal direction,filtering may be performed using samples located at a boundary of thefirst sub-block and samples located in the diagonal direction of thesamples.

The smoothing filter may be sequentially applied to the sub-blocks. Forexample, after applying the smoothing filter to the boundary of thefirst sub-block, a smoothing filter may be applied to the boundary ofthe second sub-block. Alternatively, the smoothing filter may be appliedto a plurality of sub-blocks in parallel or independently.

The application of the embodiments described focusing on the decodeprocess or encoding process to the encoding process or decoding processis included in the scope of the present invention. The change of theembodiments described in a predetermined order into a different order isalso included in the scope of the present invention.

Although the above-described embodiments have been described on thebasis of a series of steps or flowcharts, they are not intended to limitthe inventive time-series order, and may be performed simultaneously orin a different order. In addition, each of the components (for example,units, modules, etc.) constituting the block diagram in theabove-described embodiment may be implemented as a hardware device orsoftware, and a plurality of components may be combined into onehardware device or software. The above-described embodiments may beimplemented in the form of program instructions that may be executedthrough various computer components and recorded in a computer-readablerecording medium. The computer-readable storage medium may include aprogram instruction, a data file, a data structure, and the like eitheralone or in combination thereof. Examples of the computer-readablestorage medium include magnetic recording media such as hard disks,floppy disks and magnetic tapes; optical data storage media such asCD-ROMs or DVD-ROMs; magneto-optical media such as floptical disks; andhardware devices, such as read-only memory (ROM), random-access memory(RAM), and flash memory, which are particularly structured to store andimplement the program instruction. The hardware devices may beconfigured to be operated by one or more software modules or vice versato conduct the processes according to the present invention.

INDUSTRIAL APPLICABILITY

The present invention can be applied to an electronic device capable ofencoding/decoding an image.

1-15. (canceled)
 16. A method of decoding an image with a decodingapparatus, comprising: deriving an intra prediction mode of a currentblock in the image, the intra prediction mode being derived from aplurality of intra prediction modes pre-defined in the decodingapparatus, the plurality of intra prediction modes including a Planarmode, a DC mode, and directional modes; determining reference samplesfor intra prediction of the current block; and performing intraprediction on the current block based on the intra prediction mode andthe reference samples, wherein, in response to the intra prediction modeof the current block being one of the directional modes, a predictionsample of the current block is obtained based on a first referencesample located on an angular line of the intra prediction mode, wherein,in response to a case where the intra prediction on the current block isextended bi-directionally, the prediction sample is modified based on aweighted sum of the prediction sample and a second reference sample,wherein a position of the second reference sample is determined based ona value resulting from adding a predetermined offset to an x-coordinateor a y-coordinate of the prediction sample, the predetermined offsetbeing adaptively determined based on an angle of the intra predictionmode of the current block, wherein whether to extend the intraprediction on the current block bi-directionally is determined bycomparing a size of the current block with a threshold value, whereinextending the intra prediction on the current block bi-directionally isallowed only when both a width and a height of the current block aregreater than or equal to the threshold value, wherein the weighted sumis performed by applying a first weight and a second weight to theprediction sample and the second reference sample, respectively, andwherein at least one of the first weight or the second weight isdetermined based on a position of the prediction sample and a variablederived based on the size of the current block.
 17. The method of claim16, wherein, in response to the case where the intra prediction on thecurrent block is extended bi-directionally, prediction samples belongingto a first region in the current block are modified and predictionsamples belonging to a second region in the current block are output asthey are, and wherein sizes of the first region and the second regionare adaptively determined based on the size of the current block and theangle of the intra prediction mode of the current block.
 18. The methodof claim 16, wherein at least one of the first weight or the secondweight is determined further based on the angle of the intra predictionmode of the current block.
 19. A method of encoding an image with anencoding apparatus, comprising: obtaining a prediction block of acurrent block in the image; obtaining a residual block of the currentblock based on an original block of the current block and the predictionblock; and encoding the residual block to generate a bitstream, whereinthe prediction block is obtained based on an intra prediction modeselected from a plurality of intra prediction modes pre-defined in theencoding apparatus, the plurality intra prediction modes including aPlanar mode, a DC mode, and directional modes, wherein, in response tothe intra prediction mode being one of the directional modes, aprediction sample of the current block is obtained by a first referencesample located on an angular line of the intra prediction mode, wherein,in response to a case where the intra prediction on the current block isextended bi-directionally, the prediction sample is modified by aweighted sum of the prediction sample and a second reference sample,wherein a position of the second reference sample is determined based ona value resulting from adding a predetermined offset to an x-coordinateor a y-coordinate of the prediction sample, the predetermined offsetbeing adaptively determined based on an angle of the intra predictionmode of the current block, wherein whether to extend the intraprediction on the current block bi-directionally is determined bycomparing a size of the current block with a threshold value, whereinextending the intra prediction on the current block bi-directionally isallowed only when both a width and a height of the current block aregreater than or equal to the threshold value, wherein the weighted sumis performed by applying a first weight and a second weight to theprediction sample and the second reference sample, respectively, andwherein at least one of the first weight or the second weight isdetermined based on a position of the prediction sample and a variablederived based on the size of the current block.
 20. A non-transitorycomputer-readable medium for storing compressed data associated with avideo signal, the compressed data comprising: transform coefficientsgenerated by encoding a residual block of a current block, wherein theresidual block is a difference between an original block of the currentblock and a prediction block of the current block, wherein theprediction block is obtained based on an intra prediction mode selectedfrom a plurality of pre-defined intra prediction modes including aPlanar mode, a DC mode, and directional modes, wherein, in response tothe intra prediction mode being one of the directional modes, aprediction sample of the current block is obtained by a first referencesample located on an angular line of the intra prediction mode, wherein,in response to a case where the intra prediction on the current block isextended bi-directionally, the prediction sample is modified by aweighted sum of the prediction sample and a second reference sample,wherein a position of the second reference sample is determined based ona value resulting from adding a predetermined offset to an x-coordinateor a y-coordinate of the prediction sample, the predetermined offsetbeing adaptively determined based on an angle of the intra predictionmode of the current block, wherein whether to extend the intraprediction on the current block bi-directionally is determined bycomparing a size of the current block with a threshold value, whereinextending the intra prediction on the current block bi-directionally isallowed only when both a width and a height of the current block aregreater than the threshold value, wherein the weighted sum is performedby applying a first weight and a second weight to the prediction sampleand the second reference sample, respectively, and wherein at least oneof the first weight or the second weight is determined based on aposition of the prediction sample and a variable derived based on thesize of the current block.